PHP 中文字符串相关

1、字符串长度

中文字符串使用strlen() 获取字符串长度时一个UTF8的中文字符是3个字节长度;使用mb_strlen(),选定内码为UTF8,则会将一个中文字符当作长度1来计算

在对含中文字符串截取时

$str = "this你看我哪里像好人";

echo substr($str,4,4);//你�

echo mb_substr($str,4,4,'UTF-8');//你看我哪

echo mb_strcut($str,4,4,'UTF-8');//

2、字符串中中文验证

a、字符串中是否含中文

$str = "this你看我哪里像好人";

$pattern = '/[x7f-xff]/'; // OR $pattern = '/[^x00-x80]/';
 
echo preg_match($pattern, $str) ? '有' : '无';

b、字符串中是否只含中文

$str = "this你看我哪里像好人";

if (preg_match_all("/^([x81-xfe][x40-xfe])+$/", $str, $match)) {
  echo '是';
} else {
  echo '否';
}

if (!eregi("[^x80-xff]", "$str")) {
  echo '是';
} else {
  echo '否';
}
原文地址:https://www.cnblogs.com/PHPcoder404/p/9602884.html