博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
使用PHP拆分中文字符串的方法(收藏) 小节
阅读量:5141 次
发布时间:2019-06-13

本文共 962 字,大约阅读时间需要 3 分钟。

案例假设:

假设我有一个由英文字母、数字、中文字符组成的字符串,我想要往这个字符串的每两个字符中间加入一个百分号“%”.

例如:

把“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

转载于:https://www.cnblogs.com/deve/archive/2011/08/23/2569271.html

你可能感兴趣的文章
error: more than one device and emulator 问题解决
查看>>
Java基础:容器
查看>>
YUV摘要格式
查看>>
【方法2】删除Map中Value反复的记录,而且仅仅保留Key最小的那条记录
查看>>
C# CheckedListBox控件的使用方法
查看>>
【HDOJ】2007平方和与立方和
查看>>
SharePoint自定义程序页面部署 不用重启IIS
查看>>
2014-11-30-2333-Java-数组
查看>>
Nginx 自动补全url地址补全最后的斜线
查看>>
【SQL Server 2008 安装全过程】
查看>>
xml的解析及案例的分析和分享
查看>>
[译] 盘点CSS3中的新特性
查看>>
Test
查看>>
猜字母
查看>>
POJ 2421 Constructing Roads(最小生成树)
查看>>
weibo_json
查看>>
30 最小n个数
查看>>
ACM题目————最长回文串
查看>>
AOSP ON MAKO(在NEXUS 4上刷ANDROID 4.4 源代码包-下载/配置/编译/刷机)
查看>>
nativeXml使用方法
查看>>