2011-10-18 154 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 –

相关问题