Beim Erstellen einer URL aus einer variierenden Zeichenfolge haben Entwickler zwei Codierungsoptionen: urlencode() und rawurlencode(). Dieser Artikel befasst sich mit den wesentlichen Unterschieden zwischen den beiden Funktionen, um Hinweise zu ihrer angemessenen Verwendung zu geben.
rawurlencode: Ein mit RFC-Einhaltung transformierter String
rawurlencode entspricht den Spezifikationen sowohl in RFC 1738 (vor PHP 5.3.0) als auch in RFC 3986 (nach PHP 5.3.0) beschrieben 5.3.0). Es ersetzt nicht-alphanumerische Zeichen durch „ “ und zwei hexadezimale Ziffern. Diese Codierungsmethode schützt Literalzeichen vor Fehlinterpretationen als URL-Trennzeichen und schützt URLs vor Zeichenkonvertierungen, die während der Übertragung auftreten können.
urlencode: Eine Abkehr von RFC mit Pluszeichen-Codierung
urlencode hingegen weicht in einer bestimmten Hinsicht von der RFC-Konformität ab: Es kodiert Leerzeichen als „ “-Zeichen anstelle von „“, an Kodierungstechnik, die mit der Veröffentlichung von Daten aus einem WWW-Formular übereinstimmt.
Wann welche zu verwenden ist
Die geeignete Wahl zwischen URL-Code und RAW-URL-Code hängt vom beabsichtigten Zweck ab. Wenn die Interoperabilität mit anderen Systemen von größter Bedeutung ist, ist Rawurlencode die bevorzugte Option. Für ältere Systeme, die formularcodierte Abfragezeichenfolgen erwarten, bei denen Leerzeichen jedoch als „ “ statt „“ codiert werden, bleibt URL-Code jedoch die notwendige Wahl.
RFC-Nuancen
Erwähnenswert ist der subtile Unterschied zwischen RFC 1738 und RFC 3986 im Zusammenhang mit Rawurlencode. Vor PHP 5.3 entsprach Rawurlencode RFC 1738, der die Codierung des Tilde-Zeichens (~) erforderte. Ab PHP 5.3 entspricht die Funktion jedoch RFC 3986, der eine Tilde-Kodierung für unnötig hält.
Zusätzliche Überlegungen
RFC 2396 bietet weitere Einblicke in die gültige URI-Syntax. Entscheidend ist, dass es „ “ als reserviertes Zeichen innerhalb einer Abfragezeichenfolge identifiziert, was seine Kodierung gemäß RFC 3986 erfordert. Daher bleibt Rawurlencode die bevorzugte Kodierungsmethode bei Konformität mit RFC 2396.
Das obige ist der detaillierte Inhalt vonDilemma bei der URL-Kodierung: Wann sollte ich „urlencode' vs. „rawurlencode' verwenden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!