PHP中字符串删除最左边最右边和两边的空格或指定字符操作函数ltrim、rtrim、trim妙用,以及需要注意的坑
截取字符串最左边、最右边、两边指定字符时php中有指定的字符直接拿来用。
之前看网上删除字符串最后一个字符逗号方式是substr()函数,如:
<?php
$str = "1,2,3,4,5,6,";
$newstr = substr($str,0,strlen($str)-1);
echo $newstr;
这种方式还需要计算字符串截取的长度。
看下ltrim、rtrim、trim三个函数
ltrim() 函数
说明:从字符串左侧移除字符
语法:ltrim(string[,charlist])
参数:
1、string-[必需]规定要检查的字符串。
2、charlist-[可选]规定从字符串中删除哪些字符(默认值:"\0" - NULL;"\t" - 制表符;"\n" - 换行;"\x0B" - 垂直制表符;"\r" - 回车;" " - 空格)
返回值:返回已修改的字符串。
php版本:4+
示例:
<?php
// 移除字符串最左边空格
$url = ' https://www.yj521.com/';
echo ltrim($url);
ltrim() 函数
说明:从字符串右侧移除字符
语法、参数等和ltrim() 函数一样。
示例:
<?php
// 移除字符串最右边空格
$url = ' https://www.yj521.com/';
echo rtrim($url);
trim() 函数
说明:移除字符串两侧的空白字符或其他预定义字符。
语法、参数等和ltrim() 函数一样。
示例:
<?php
// 移除字符串两边空格
$url = ' https://www.yj521.com/ ';
echo trim($url);
其他示例:
<?php
// 移除字符串两边.号
$url = '.https://www.yj521.com/.';
echo trim($url,'.');
需要注意的坑:
如果在去除字符串中需要去除指定连续多个字符有时会有问题,具体看示例:
$str = 'https://yj521.com/zhl/1.html';
echo trim($str,'.html');
// 输出:ps://yj521.com/zhl/1
比如上边的案例,我们需要去除字符串中的“.html”字符串,通过trim函数时,会把字符串中里边包含“.”“h”“t”“m”“l”这些字符去掉了,当前函数是去除字符串两边的字符,是从字符串两边开始检测的,检测到就去除掉了,所以这时字符串处理后的结果就不是想要的结果了,这种情况可以通过substr()函数或者str_replace()函数处理,如:
//方式1(未知字符串情况下strlen计算字符串长度)
echo substr($str, 0, -strlen('.html'));
//方式2
echo str_replace('.html','',$str);
// 输出:https://yj521.com/zhl/1
方式一性能要好于方式二,耗时比较大约 3 : 5左右。所以substr性能高于str_replace。