使用PHP拆分中文字符串的方法(收藏) 小节
2011-08-23 16:34
267 查看
案例假设:
假设我有一个由英文字母、数字、中文字符组成的字符串,我想要往这个字符串的每两个字符中间加入一个百分号“%”.
例如:
把“Hurry的博客blog.csdn.net/jpr1990”变成“H%r%r%y%的%博%客%b%l%o%g%.%c%s%d%n%.%n%e%t%/%j%p%r%1%9%9%0”
那么我们怎么来实现呢?
当然我们首先想到用"str_split"函数,但如果直接用PHP函数“str_split”来分割,会出现乱码,因为中文字符长度和英文字符长度是不一样的。但是我们可以建立新的函数先把字符转成ASCII值,接着通过判断不同字符的长度来正确分割中文字符串,把结果存入数组,最后再用PHP函数“join”在字符间插入百分号。具体代码如下:
附上PHP拆分普通字符串的方法:
--Hurry
假设我有一个由英文字母、数字、中文字符组成的字符串,我想要往这个字符串的每两个字符中间加入一个百分号“%”.
例如:
把“Hurry的博客blog.csdn.net/jpr1990”变成“H%r%r%y%的%博%客%b%l%o%g%.%c%s%d%n%.%n%e%t%/%j%p%r%1%9%9%0”
那么我们怎么来实现呢?
当然我们首先想到用"str_split"函数,但如果直接用PHP函数“str_split”来分割,会出现乱码,因为中文字符长度和英文字符长度是不一样的。但是我们可以建立新的函数先把字符转成ASCII值,接着通过判断不同字符的长度来正确分割中文字符串,把结果存入数组,最后再用PHP函数“join”在字符间插入百分号。具体代码如下:
function str_split_utf8($str){ $split=1; $array=array(); for($i=0;$i<strlen($str)){ $value=ord($str[$i]); if($value>127){ if($value>=192&&$value<=223) $split=2; elseif($value>=224 && $value<=239) $split=3; elseif($value>=240 && $value<=247) $split=4; }else{ $split=1; } $key=NULL; for($j=0;$j<$split;$j++,$i++){ $key.=$str[$i]; } array_push($array,$key); } return $array; } $string="Hurry的博客blog.csdn.net/jpr1990"; $arr1=str_split_utf8($string); echo join("%",$arr1);
附上PHP拆分普通字符串的方法:
$arr=explode("<br>",$str); print_r($arr); echo $arr[0]."-".$arr[1];
--Hurry
相关文章推荐
- 使用PHP拆分中文字符串的方法(收藏) 小节
- php使用explode()函数将字符串拆分成数组的方法
- php使用explode()函数将字符串拆分成数组的方法
- 使用 POCO 的方法来拆分字符串(支持中文)
- php使用escapeshellarg时中文被过滤的解决方法
- PHP使用json_encode函数时不转义中文的解决方法
- 使用php自带的多字节处理函数来处理中文,最佳方法
- php截取utf-8中文字符串乱码的解决方法
- PHP截取中文字符串方法详解
- 教你如何使用PHP输出中文JSON字符串
- php中文字符串截取方法实例总结
- PhpExcel中文帮助手册|PhpExcel使用方法(转)
- php使用str_shuffle()函数生成随机字符串的方法分析
- PHP截取中文字符串方法总结
- PHP截取中文字符串方法总结
- php使用iconv中文截断问题的解决方法
- PHP中使用file_get_contents抓取网页中文乱码问题解决方法
- PHP截取中文字符串方法总结
- PHP截取中文字符串的方法