2011-10-18 153 views
55

之前,我需要這個字符串內發生之前,任何字符串刪除所有字符:PHP中刪除所有角色特定的字符串

"www/audio" 

不知道我怎麼能做到這一點。

+0

您可能會發現['S($ STR) - > afterFirst( 'WWW /音頻')'](https://github.com/delight-im/PHP-Str/ blob/8fd0c608d5496d43adaa899642c1cce047e076dc/src/Str.php#L435)或['s($ str) - > afterLast('www/audio')'](https://github.com/delight-im/PHP-Str/blob /8fd0c608d5496d43adaa899642c1cce047e076dc/src/Str.php#L445)很有幫助,在[此獨立庫](https://github.com/delight-im/PHP-Str)中找到。 – caw

回答

123

您可以使用strstr來執行此操作。

echo strstr($str, 'www/audio'); 
+18

快速提示:您可以使用'strstr()'通過調用'echo strstr($ str,'www/audio',true)來返回**之前的**字符串部分**' – cfx

14

考慮

$string="We have www/audio path where the audio files are stored"; //Considering the string like this 

要麼你可以使用

strstr($string, 'www/audio'); 

或者

$expStr=explode("www/audio",$string); 
$resultString="www/audio".$expStr[1]; 
+0

string函數通常比數組函數更快 –

+1

爆炸實際上是更好的答案,因爲問題是關於_removing_字符串之前的文本。 –

0

我使用這個功能

function strright($str, $separator) { 
    if (intval($separator)) { 
     return substr($str, -$separator); 
    } elseif ($separator === 0) { 
     return $str; 
    } else { 
     $strpos = strpos($str, $separator); 

     if ($strpos === false) { 
      return $str; 
     } else { 
      return substr($str, -$strpos + 1); 
     } 
    } 
} 

function strleft($str, $separator) { 
    if (intval($separator)) { 
     return substr($str, 0, $separator); 
    } elseif ($separator === 0) { 
     return $str; 
    } else { 
     $strpos = strpos($str, $separator); 

     if ($strpos === false) { 
      return $str; 
     } else { 
      return substr($str, 0, $strpos); 
     } 
    } 
} 
+5

太多了 - 如果被認爲是好的:p –

相關問題