PHP entfernt alle Zeichen vor einer bestimmten Zeichenfolge


75

Ich muss alle Zeichen aus einer Zeichenfolge entfernen, bevor dies in der Zeichenfolge auftritt:

"www/audio"

Ich bin mir nicht sicher, wie ich das machen kann.



Antworten:


158

Sie können dazu strstr verwenden.

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

31
Kurzer Hinweis: Sie können strstr()den Teil der Zeichenfolge, der vor dem Argument steht, auch zurückgeben, indem Sieecho strstr($str, 'www/audio', true);
cfx

19

In Anbetracht

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

Entweder können Sie verwenden

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

Oder

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

String-Funktionen sind in der Regel schneller als Array-Funktionen
Jeder

2
Die Explosion ist in der Tat eine bessere Antwort, da es um das Entfernen des Textes vor der Zeichenfolge ging.
Borjovsky

Das Explodieren kann zu Problemen führen, wenn Sie mehrere Zeichenfolgen derselben Zeichenfolge haben, die Sie entfernen möchten. Beispiel: "Wir haben einen WWW / Audio-Pfad, in dem die WWW / Audiodateien gespeichert sind." Sie könnten so etwas wie foreach ($ expStr als $ key => $ value) echo ($ key == 0? '': 'www / audio'. $ value) tun; oder foreach ($ expStr als $ key => $ value) echo ($ key == 0? '': ($ key == 1? '': 'www / audio'). $ value); wenn Sie das anfängliche www / audio weglassen wollten.
TheKLF99

2

Ich benutze diese Funktionen

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

Dies funktioniert gut für mehrere Vorkommen derselben Zeichenfolge. Vielen Dank!
Davykiash

für rechts entfernen - vom Substrat, um vollständige Zeichenfolge nach dem ersten Auftreten des Separators zu erhalten
Aditya

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.