程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> 關於PHP編程 >> php刪除字符串末尾子字符

php刪除字符串末尾子字符

編輯:關於PHP編程

今天想處理下原先由於失誤而多加的子字符,如 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];  

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved