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.

user547794
quelle

Antworten:

158

Sie können dazu strstr verwenden.

echo strstr($str, 'www/audio');
xdazz
quelle
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];
Wazy
quelle
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);
        }
    }
}
saeed arab sheybani
quelle
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
0

Sie können mit String und strpos dieses Ziel zu erreichen.

Sie können auch einen regulären Ausdruck verwenden , um nur das zu finden, was Sie möchten. Ihr Kilometerstand kann variieren, je nachdem, welcher dieser Ansätze sinnvoller ist.

die Tagesumdrehungen
quelle