是否有人知道如何從字符串中刪除前幾個字符並在PHP中刪除它們。PHP獲得前幾個字符並從字符串中刪除
像在字符串「str_filename」中,我需要刪除「str_」並保存「文件名」。
但它必須刪除儘可能多的字符以達到「_」。
換句話說,我需要刪除所有的字符,直到包括字符串中的第一個「_」。
是否有人知道如何從字符串中刪除前幾個字符並在PHP中刪除它們。PHP獲得前幾個字符並從字符串中刪除
像在字符串「str_filename」中,我需要刪除「str_」並保存「文件名」。
但它必須刪除儘可能多的字符以達到「_」。
換句話說,我需要刪除所有的字符,直到包括字符串中的第一個「_」。
你可以這樣做:
if (strpos($string, '_') !== false)
$string = substr($string, strpos($string, '_') + 1);
它的工作原理,你可以在這裏看到:http://codepad.org/g12ENLGY
注意:因爲你的字符串不能有 '_' 字符的if
是非常有用的。
您可以使用類似:
$files = explode("_", $filename);
echo $files[1];
所以這將拆分對_
字符的字符串,然後回聲第二部分(下劃線後)。
雖然這只是假設只有一個下劃線。
很好,你指定這個解決方案只能用一個下劃線。 ;) –
比使用explode
和substr
另外一個解決方案已經提到您使用正則表達式可以解決這個問題:
^(?:[^_]*_)(.*)$
下面是使用它的一個例子:
$str = "str_filename";
$pattern = "/^(?:[^_]*_)(.*)$/";
preg_match($pattern, $str, $matches);
echo $matches[1]; //prints "filename"
謝謝你很完美 – Olokoo
@ Ian34很高興幫助你。 –
順便說一句,通常人們會做'if(false!== $ pos = strpos($ string,'_'))$ string = substr($ string,$ pos + 1);'保存重複的strpos;) – NikiC