您的位置:首页 > 编程语言 > PHP开发

PHP常用字符串函数

2016-04-22 22:24 573 查看
1·长度计算
纯英文字符串
strlen()
计算字符串的长度,但是不能测量中英文混合的字符串;
mb_strlen()
计算字符串的长度,对于中英文混合的字符串,会将中文字符计算为一个字符;需要第二个参数指定字符串的编码方式

[php]
view plain
copy





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
【对于包含中文的字符串,会引起错误】

[php]
view plain
copy





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()函数来替换


[php]
view plain
copy





1·截取中文字符串
mb_substr($string,$start,$length,$encoding);
截取字符串$string,从$start开始,长度为$lenght,$encoding指定字符串的编码方式,指定正确的编码方式可以使中文在截取的时候识别为一个字符
iconv_substr();
与mb_substr用法相似,但是iconv在某些操作系统上可能运行不正常需要安装gnu扩展;相比而下,mb_substr的兼容性更好一些
iconv会先将字符串转换为相应的编码再进行截取,而mb_substr则是直接在指定的编码下进行截取,效率更高一些。

[php]
view plain
copy





2·提取中文字符串
function pregCh($test){
//utf8下匹配中文
$rule ='/([\x{4e00}-\x{9fa5}]){1}/u';
preg_match_all($rule,$test,$result);
return $result;
}

[php]
view plain
copy





2·提取中文字符串

function pregCh($test){
//utf8下匹配中文
$rule ='/([\x{4e00}-\x{9fa5}]){1}/u';
preg_match_all($rule,$test,$result);
return $result;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: