Home  >  Article  >  php教程  >  php删除字符串末尾子字符

php删除字符串末尾子字符

WBOY
WBOYOriginal
2016-06-13 10:57:08788browse

今天想处理下原先由于失误而多加的子字符,如 linzimu.apk.apk。

    起初使用的是rtrim,其实这个函数是trim的衍生,trim是去除收尾,而rtrim是去除字符末尾,还有一个是去除字符头部的是ltrim。

    使用如下代码:


[php]
$out = rtrim($in,'.apk');  

$out = rtrim($in,'.apk');
输出的结果是linzimu,那好我想,那我就直接再[php] view plaincopyprint?
$out .= '.apk'  

$out .= '.apk'


就是我想要的东西了

后来保险起见,在上传服务器前都要检查下文件是否存在。结果2W多的数据,有4k是不存在的。


找了半天终于找到原因了,其实是自己没有细看PHP手册。

ltrim 后面是 charlist 而不是 $substring

也就是说 后面是字符列表 不一定按照这个顺序,

比如linzimua,apk,apk中的a就会被去除掉。

去除的原则是,一直都匹配一直去除,知道第一个不匹配为止。


所以立马改用另一种方法,可以使用

思路1:所可以变化下思维去除字符串,可以变为替换字符串,替换为NULL

使用

[php] 
substr_replace($test,'',-4);  

substr_replace($test,'',-4);
思路2:也可以变为,将自己想要的字符串作为子字符串提取出来


[php] 
$test = "lin.apk.apk";  
preg_match("#^((.+)\.(.+))\.#i", $test,$m);  
echo $m[1];  

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Previous article:php实战第九天Next article:php实战第十天