PHP常用字符串操作函数
- 1·长度计算
- 纯英文字符串
- strlen()
- 计算字符串的长度,但是不能测量中英文混合的字符串;
- mb_strlen()
- 计算字符串的长度,对于中英文混合的字符串,会将中文字符计算为一个字符;需要第二个参数指定字符串的编码方式
- 2·字符串的替换
- str_replace()
- 查找需要的字符串,使用指定的字符串对其进行替换
- preg_replace()
- 和str_replace一样,但是指定被替换字符的方式有所不同,str_replace使用纯粹的字符,preg_replace可以使用正则表达式
- strtr(string $str,string $from,string $to)
- 遍历$str,将其中的$from[$n]替换成$to[$n];$n为$from和$to都有的有效位移;
- 【$from和$to为中文时,替换可能会引起错误;
- 错误示例代码:
- header(\’Content-type:text/html;charset=utf-8\’);
- echo strtr(“中国好事多”, “中国”, “河南”),“\n”;
- 】
- strtr(string $str,array $replace_pairs);
- $replace_pairs是一个数组,该数组中所有的键只要在$str中存在就会被替换成对应的值
- 【使用这种形式可以避免上诉的错误
- 示例代码:
- header(\’Content-type:text/html;charset=utf-8\’);
- echo strtr(“中国好事多”,array(“中国”=>“河南”));
- echo \'<br/>\’;
- 】
- substr_replace($string,string $replacement,$start[,$length])
- 将$string中从$start开始的长度为$length的部分替换为$replacement;如果$length不存在,则$length将默认为$string的长度;
- 【对包含中文字符串,需要寻找可替代方案】
- str_split($string[,$length]);
- 将字符串按照每一小段长度为$length的方式进行截取;如果不指定$length,则默认为1
- 【对于包含中文的字符串,会引起错误】
- 3·字符串查找
- strpos($string,$needle)
- 查询$needle在$string中第一次出现的位置
- [遇到有包含中文的字符串的时候,
- strpos无法获取正确的结果
- mb_strpos可以用来精确的得出结果
- ]
- stripos与strpos相似,但是忽略大小写的影响
- strstr($string,$needle)
- 返回在$string中$needle第一次出现的位置到$string结尾的子串
- stristr()
- 与strstr类似,只是不区分大小写
- substr($str,$start,$length)
- 截取字符串,截取$str中从$start开始长度为$length的子串
- 【对于包含中文字符串,截取会出现错误
- 需要使用mb_substr()函数来替换
- 】
- 1·截取中文字符串
- mb_substr($string,$start,$length,$encoding);
- 截取字符串$string,从$start开始,长度为$lenght,$encoding指定字符串的编码方式,指定正确的编码方式可以使中文在截取的时候识别为一个字符
- iconv_substr();
- 与mb_substr用法相似,但是iconv在某些操作系统上可能运行不正常需要安装gnu扩展;相比而下,mb_substr的兼容性更好一些
- iconv会先将字符串转换为相应的编码再进行截取,而mb_substr则是直接在指定的编码下进行截取,效率更高一些。
- 2·提取中文字符串
- function pregCh($test){
- //utf8下匹配中文
- $rule =\’/([\x{4e00}-\x{9fa5}]){1}/u\’;
- preg_match_all($rule,$test,$result);
- return $result;
- }
- 2·提取中文字符串
- function pregCh($test){
- //utf8下匹配中文
- $rule =\’/([\x{4e00}-\x{9fa5}]){1}/u\’;
- preg_match_all($rule,$test,$result);
- return $result;
- }
版权声明:本文为aademeng原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。