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.