PHP: Leerzeichen in String in% 20 konvertieren?


82

Wie kann ich Leerzeichen in Zeichenfolgen konvertieren %20?

Hier ist mein Versuch:

$str = "What happens here?";
echo urlencode($str);

Die Ausgabe ist "What+happens+here%3F", daher werden die Leerzeichen nicht als dargestellt %20.

Was mache ich falsch?

Antworten:


194

Verwenden Sie rawurlencodestattdessen die Funktion.


Beachten Sie, dass ein konvertierter Schrägstrich dazu führt, dass die URL nicht funktioniert, wenn Sie dies für die URL verwenden (nicht für den Abfrageteil). Wenn Sie sich also nur um Leerzeichen kümmern müssen (möglicherweise für diese URL), empfehle ich str_replace.
Lukáš Řádek

25

Das Pluszeichen ist die historische Codierung für ein Leerzeichen in URL-Parametern, wie in der Hilfe für die urlencode()Funktion dokumentiert .

Dieselbe Seite enthält die Antwort, die Sie benötigen - verwenden Sie rawurlencode()stattdessen, um eine RFC 3986- kompatible Codierung zu erhalten.


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.