字符串处理问题 本帖最后由 zhuhao 于 2012-01-01 11:35:31 编辑 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 用PHP获取客户端浏览器的语言(用$_SERVER['HTTP_ACCEPT_LANGUAGE']来实现)<?php $lan=$_SERVER['HTTP_ACCEPT_LANGUAGE']; //获取浏览器语言版本 if(preg_match("/[zh]{2}\-[hk]{2}/",$lan)||preg_match("/[zh]{2}\-[tw]{2}/",$lan)){ echo "繁体"; }elseif (preg_match("/(?i)^[en]/",$lan)){ echo "english"; }elseif (preg_match("/[zh]{2}\-[cn]{2}/",$lan)){ echo "简体"; }else{ //其他转到英文或其他页面 echo "other language"; }?> 谢谢楼上两位,可能我没说明白我的意思,说简单一点吧www.baidu.com/index.php(这个地址只是例子,这些链接地址是已经存在数据里面的)我现在是想把上面的地址改成,如果获取的语言是“zh”,地址改成$link=www.baidu.com/zh/index.php如果获取的语言是“ja”,地址改成$link=www.baidu.com/ja/index.php如果获取的语言是“en”,地址改成$link=www.baidu.com/en/index.php<a href=<?PHP echo $link ?>title</a>简单的说就是在字符串中的指定位置插入字符串 第一个问题解决了,我直接的用替换函数$st="www.baidu.com/digitown/index.php";echo str_replace("digitown","digitown/zh",$st);请问第二个问题应该怎么做呢??二。<!--:zh-->更多信息<!--:--><!--:en-->More Info<!--:--><!--:ja-->詳細情報<!--:-->以上字符串,如果页面是中文,就显示zh里面的“更多信息”如果页面是日文,就显示ja里面的“详细情报”如果页面是英文,就显示en里面的“More Info” 这个意思?$s = 'http://www.baidu.com/index.php';$ch = 'zh';$t = parse_url($s);$p = $t['path'];echo str_replace($p, "/$ch$p", $s);//http://www.baidu.com/zh/index.php 第二个问题:实际上是 国际化多语言的问题。你可以写一函数。传入语言,显示相关内容。如:msg(' x_more_infor', 'zh') //结果 :更多信息$msg[' x_more_infor'] = 'More info'; 受益了 我也在学PHP 二。<!--:zh-->更多信息<!--:--><!--:en-->More Info<!--:--><!--:ja-->詳細情報<!--:-->我现在就是不知道怎么获取。<!--:zh--> <!--:-->之间的内容,因为这些字符串也是通过数据库获取的 是不是要这样 $Str = '<!--:zh-->更多信息<!--:--><!--:en-->More Info<!--:--><!--:ja-->詳細情報<!--:-->';$Lg = 'en';switch ($Lg) { case 'zh' : $Pat = '/<!--:zh-->(.*)<!--:-->/U'; break; case 'ja' : $Pat = '/<!--:ja-->(.*)<!--:-->/U'; break; case 'en' : $Pat = '/<!--:en-->(.*)<!--:-->/U'; break;}preg_match ( $Pat, $Str, $Marray );echo $Marray [1];//More Info 菜鸟一只,求助 PHP+Mysql 问题! 一个很好的学习PHP的网部 从已有表中查询数据并批量插入到结构不相同的另一个表中 求MAC地址的正则表达式 PHP,如何生成图片缩略图,或裁剪一部分? 急求,PHP中的一次性批量插入语句!!! 请教高手,关于用php读取远程xml网页文件中的常量的问题?高分请教!跪谢了先 如何知道传入的文件类型? 怎么调试微信 开发这模式的 怎么看用户发过来的xml数据 sql,去重查询distinct mysql 数据库 php有xdebug,js有什么工具可以查看已经执行的函数?
if(preg_match("/[zh]{2}\-[hk]{2}/",$lan)||preg_match("/[zh]{2}\-[tw]{2}/",$lan)){
echo "繁体";
}elseif (preg_match("/(?i)^[en]/",$lan)){
echo "english";
}elseif (preg_match("/[zh]{2}\-[cn]{2}/",$lan)){
echo "简体";
}else{ //其他转到英文或其他页面
echo "other language";
}
?>
www.baidu.com/index.php(这个地址只是例子,这些链接地址是已经存在数据里面的)我现在是想把上面的地址改成,
如果获取的语言是“zh”,地址改成
$link=www.baidu.com/zh/index.php如果获取的语言是“ja”,地址改成
$link=www.baidu.com/ja/index.php如果获取的语言是“en”,地址改成
$link=www.baidu.com/en/index.php<a href=<?PHP echo $link ?>title</a>简单的说就是在字符串中的指定位置插入字符串
echo str_replace("digitown","digitown/zh",$st);
请问第二个问题应该怎么做呢??
二。<!--:zh-->更多信息<!--:--><!--:en-->More Info<!--:--><!--:ja-->詳細情報<!--:-->
以上字符串,
如果页面是中文,就显示zh里面的“更多信息”
如果页面是日文,就显示ja里面的“详细情报”
如果页面是英文,就显示en里面的“More Info”
$s = 'http://www.baidu.com/index.php';
$ch = 'zh';
$t = parse_url($s);
$p = $t['path'];echo str_replace($p, "/$ch$p", $s);//http://www.baidu.com/zh/index.php
msg(' x_more_infor', 'zh') //结果 :更多信息$msg[' x_more_infor'] = 'More info';
$Str = '<!--:zh-->更多信息<!--:--><!--:en-->More Info<!--:--><!--:ja-->詳細情報<!--:-->';
$Lg = 'en';
switch ($Lg) {
case 'zh' :
$Pat = '/<!--:zh-->(.*)<!--:-->/U';
break;
case 'ja' :
$Pat = '/<!--:ja-->(.*)<!--:-->/U';
break;
case 'en' :
$Pat = '/<!--:en-->(.*)<!--:-->/U';
break;
}
preg_match ( $Pat, $Str, $Marray );
echo $Marray [1];//More Info