在PHP中查找中文字符,有两种方案:
将PHP保存为与欲查找中文一样的编码,然后使用strpos查找。
将PHP保存为UTF-8无BOM编码,然后转换字符串编码为UTF-8,再用strpos查找。
第一种方法:
strpos($curl_res, '中文');第二种方法:
$str = mb_convert_encoding($str, 'utf-8', 'gbk');mb_strpos($str, '中文');
主意:函数中的中文字符串参数的编码,必须要和PHP文件保存格式的编码一致。
以前在论坛看到这么个帖子 “如何能准确获取汉字的拼音或首字母,网上的方法都试过了”解决了我的问题。看来现在又派上又用场了。来自:php新手入门网连接: >
/
截取函数,中文一个,英文两个算一个
/
function mbsubstr($str, $start=0, $length, $suffix=true, $charset="utf-8") {
$re['utf-8'] = "/[\x01-\x7f]|[\xc2-\xdf][\x80-\xbf]|[\xe0-\xef][\x80-\xbf]{2}|[\xf0-\xff][\x80-\xbf]{3}/";
$re['gb2312'] = "/[\x01-\x7f]|[\xb0-\xf7][\xa0-\xfe]/";
$re['gbk'] = "/[\x01-\x7f]|[\x81-\xfe][\x40-\xfe]/";
$re['big5'] = "/[\x01-\x7f]|[\x81-\xfe]([\x40-\x7e]|\xa1-\xfe])/";
preg_match_all($re[$charset], $str, $match);
$strArr = $match[0];
$str = array_values(tempStrArr($strArr));
$strArrCount = count($str);
if($strArrCount == $length+1){
$length += 1;
}
$slice = implode('',array_slice($str,$start,$length));
if($strArrCount > $length){
return $suffix $slice'' : $slice;
}else{
return $slice;
}
}
function tempStrArr($strArr){
$e = range('a','z');
$i = count($strArr);
foreach($strArr as $k=>$v){
if(in_array(strtolower($v), $e)){
if(in_array(strtolower($strArr[$k+1]), $e)){
$strArr[$k] = $v$strArr[$k+1];
unset($strArr[$k+1]);
break;
}
}elseif($v > 0 && $v < 10 && $strArr[$k+1] > 0 && $strArr[$k+1] < 10){
$strArr[$k] = $v$strArr[$k+1];
unset($strArr[$k+1]);
break;
}
$i--;
}
if($i > 0){
$strArr = tempStrArr($strArr);
}
return $strArr;
}
截取字符串, 中英文都可以
以上就是关于PHP 查找中文字符串全部的内容,包括:PHP 查找中文字符串、用php怎么取得第一个汉字的的拼音了、php截取一段字符串中第一个出现的数字或字母或冒号前面的中文汉字的语句怎么写等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)