内容一样但是字符串长度不一致(转)
<?php
header("Content-Type: text/html;charset=utf-8");
$data[0]=$str1="后勤保障部";
$data[1]=$str2="后勤保障部";
var_dump($data);
//查看编码方式
$encode1 = mb_detect_encoding($str1, array("ASCII","UTF-8","GB2312","GBK","BIG5"));
$encode2 = mb_detect_encoding($str2, array("ASCII","UTF-8","GB2312","GBK","BIG5"));
//当mb_strlen的内码选择为UTF-8的时候,则会将中文字符当成一个字符
//strlen,得到的是字符串所占的字节数
echo "str1='".$str1."'".": 字符长度:".mb_strlen($str1).": 字节长度:".strlen($str1)." 编码:".$encode1."</br>";
echo "str2='".$str2."'".": 字符长度:".mb_strlen($str2).": 字节长度:".strlen($str2)." 编码:".$encode2."</br>";
//截取str1后面两个未显示字符
echo "</br>------------------截取str1后面两个未显示字符---------------------</br>";
$res=mb_substr($str1, 5,2);
echo "str1最后两字符: ".$res."</br>";
echo "str1长度: ".mb_strlen($res)."</br>";
//比较
echo "</br>--------------------------相等比较----------------------------------</br>";
echo "str1 与 str2比较: ";
echo strcomp($str1,$str2)."</br>";
echo "str2 与 str2比较: ";
echo strcomp($str2,$str2)."</br>";
//剔除str1字串中非中文
preg_match_all('/[\x{4e00}-\x{9fff}]+/u', $str1, $matches);
$str1 = join('', $matches[0]);
echo "</br>---------------------剔除str1字串中非中文后----------------------</br>";
echo "str1='".$str1."'".": 字符长度:".mb_strlen($str1).": 字节长度:".strlen($str1)." 编码:".$encode1."</br>";
echo "str1 与 str2比较: ";
echo strcomp($str1,$str2)."</br>";
function strcomp($str1,$str2){
if($str1 == $str2){
return "相等";
}else{
return "不等";
}
}
?>