PHP str_replace ersetzt Leerzeichen durch Unterstriche

Lesezeit: 1 Minute

Benutzer-Avatar
Gischeri

Gibt es einen Grund, den ich nicht sehe, warum das nicht funktioniert?

    $string = $someLongUserGeneratedString;
    $replaced = str_replace(' ', '_', $string);
    echo $replaced;

Die Ausgabe enthält immer noch Leerzeichen … Irgendwelche Ideen wären großartig

Benutzer-Avatar
Laurent Brieu

Ich schlage vor, dass Sie dies verwenden, da es sowohl auf einzelnes als auch auf mehrfaches Vorkommen von Leerzeichen prüft (wie von Lucas Green vorgeschlagen).

$journalName = preg_replace('/\s+/', '_', $journalName);

Anstatt von:

$journalName = str_replace(' ', '_', $journalName);

  • Es verwendet a Regulären Ausdruck um eine Klasse von Zeichenfolgen in einem bestimmten Muster abzugleichen, und ersetzt sie bei Übereinstimmung durch eine Substitutionssequenz.

    – Lukas Grün

    3. Oktober 2012 um 8:48 Uhr

  • Es gibt einen Fehler in dieser Version, es werden nur Gruppen mit mehr als einem Leerzeichen abgeglichen.

    – Lukas Grün

    3. Oktober 2012 um 8:50 Uhr

  • @LucasGreen, du hast Recht! Richtig ist: preg_replace(‘/\s+/’, ‘_’, $journalName);

    – Laurent Brieu

    3. Oktober 2012 um 8:52 Uhr

  • Sie wollen wahrscheinlich auch trimmen: preg_replace(‘/\s+/’, ‘_’, trim($journalName));

    – Andreas

    12. Oktober 2016 um 12:48 Uhr

  • Für die Verwendung der UTF-8-Codierung preg_replace('/\s+/u', '_', $journalName)

    – Alles ist gut

    6. Mai 2021 um 8:50 Uhr

Versuchen Sie stattdessen Folgendes:

$journalName = preg_replace('/\s+/', '_', $journalName);

Erklärung: Sie sehen höchstwahrscheinlich Leerzeichen, nicht nur einfache Leerzeichen (es gibt einen Unterschied).

Verwenden Sie für ein übereinstimmendes Zeichen ersetzen str_replace:

$string = str_replace(' ', '_', $string);

Verwenden Sie für alle übereinstimmenden Zeichen ersetzen preg_replace:

$string = preg_replace('/\s+/', '_', $string);

Versuchen Sie stattdessen Folgendes:

$journalName = str_replace(' ', '_', $journalName);

um Leerzeichen zu entfernen

1345840cookie-checkPHP str_replace ersetzt Leerzeichen durch Unterstriche

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy