PHP删除特定字符串之前的所有字符


Answers:


159

您可以使用strstr做到这一点。

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

31
快速说明:您也可以通过调用strstr()echo strstr($str, 'www/audio', true);
cfx

19

考虑中

$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];

字符串函数通常比数组函数快
所有人

2
实际上,爆炸是一个更好的答案,因为问题在于要删除字符串之前的文本。
Borjovsky '16

如果您多次尝试删除相同的字符串,爆炸可能会导致问题-例如,如果您想使用爆炸,“如果我们有存储www / audio文件的www / audio路径”,则会导致“ path where the”。你可以像foreach($ expStr as $ key => $ value)做类似的事情echo($ key == 0?'':'www / audio'。$ value); 或foreach($ expStr as $ key => $ value)echo($ key == 0?'':($ key == 1?'':'www / audio')。$ value); 如果您想省略初始的www / audio。
TheKLF99 '19

2

我用这个功能

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);
        }
    }
}

这对于同一字符串的多次出现效果很好。谢谢!
davykiash

正确删除-第一次出现分隔符后,从substr中获取完整的字符串
Aditya

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.