$st = wpsc_cart_item_name();
$Lg= 'en';
$Str ='<!--:en-->iPad 2 <!--:--><!--:zh-->中文<!--:--><!--:ja-->日文<!--:-->';switch ($Lg) {
case 'zh' :
$Pat = '/<!--:zh-->(.*)<!--:-->/U';
break;
case 'ja' :
$Pat = '/<!--:ja-->(.*)<!--:-->/U';
break;
case 'en' :
$Pat = '/<!--:en-->(.*)<!--:-->/U';
break;
}preg_match ( $Pat, $st, $Marray );
echo $Marray [1];
echo $Lg;
echo $st;preg_match ( $Pat, $Str, $Marray );
echo $Marray [1];
这段可以输出字符串。
preg_match ( $Pat, $st, $Marray );
echo $Marray [1]; //这个输出空白
echo $st; //这个输出结果为:<!--:en-->iPad 2 <!--:--><!--:zh-->中文<!--:--><!--:ja-->日文<!--:-->
preg_match ( $Pat, $st, $Marray );//感觉没有匹配到,请问解决这个问题应该是怎么样做???
$Lg= 'en';
$Str ='<!--:en-->iPad 2 <!--:--><!--:zh-->中文<!--:--><!--:ja-->日文<!--:-->';switch ($Lg) {
case 'zh' :
$Pat = '/<!--:zh-->(.*)<!--:-->/U';
break;
case 'ja' :
$Pat = '/<!--:ja-->(.*)<!--:-->/U';
break;
case 'en' :
$Pat = '/<!--:en-->(.*)<!--:-->/U';
break;
}preg_match ( $Pat, $st, $Marray );
echo $Marray [1];
echo $Lg;
echo $st;preg_match ( $Pat, $Str, $Marray );
echo $Marray [1];
这段可以输出字符串。
preg_match ( $Pat, $st, $Marray );
echo $Marray [1]; //这个输出空白
echo $st; //这个输出结果为:<!--:en-->iPad 2 <!--:--><!--:zh-->中文<!--:--><!--:ja-->日文<!--:-->
preg_match ( $Pat, $st, $Marray );//感觉没有匹配到,请问解决这个问题应该是怎么样做???
这个输出iPad 2
preg_match ( $Pat, $st, $Marray );这个就不行,不知道为什么,$st的值有,格式也对。
echo base64_encode($st);贴出结果
加上utf-8的修政符
echo '不相等';
}
wpsc_cart_item_name();是一个自定义函数,用来获取产品名称的
回moocky大大:
我加了utf-8的修正符,不能显示结果
我个人觉得可能是没有得到匹配。
呵呵,没办法,有问题不解决不行啊!
返回结果是1
那不就是了,两个字符串不相同啊.怎么匹配,所以问题在你的函数上 .
加个循环进行查找哪个开始不同吧strncmp($str1,$str2,数字);do it...找出不同点
do{
$la=strcmp($Str,$st,$i);
$i=$i+1;
if($la!==0){
echo ": $i-$la";}
}
while($i<70);是不是我的代码有问题???
do{
$st1=substr($st,$i,1);
$Str1=substr($Str,$i,1);
$la=strcmp($Str1,$st1);echo "$st1=$Str1<br>";$i=$i+1;
}
while($i<71);结果: