Mailinglisten-Archive |
Hallo Oliver, > Mich wuerde mal interessieren, wo urlencode(string) im Gegensatz zu > rawurlencode(string) angesagt ist. > > Das Manual aeussert sich in missverstaendlicher Form zu urlencode: > Returns a string in which all non-alphanumeric characters except -_. > have been replaced with a percent (%) sign followed by two hex digits and > *** spaces encoded as plus (+) signs. *** [..] This differs from the > RFC1738 encoding (see rawurlencode ) in that for historical reasons, > spaces are encoded as plus (+ ) signs. > > Ja und? Oben sagt er doch auch, Spaces sind encoded as plus signs. Aah, da bin ich ja beruhigt, daß das noch jemand außer mir mißverständlich findet. ;-) Genau über diese Formulierung bin ich vor ein paar Monaten nämlich auch schon gestolpert - wurde auch kurz hier diskutiert, ich weiß allerdings nicht mehr so genau wann und mit wem (und bin jetzt auch zu faul nachzusehen)... Soweit ich mich recht erinnere, ist der Abschnitt in der Doku wohl so gemeint: - Das "originale" URL-encoding (gemäß RFC1738, bei PHP "rawurlencode") kodiert Spaces (und auch alle anderen "Sonderzeichen" als Hex-Wert mit % davor. Ein Space wird also zu %20) - Aus "historischen" Gründen (soll wohl heißen: Irgendein Browser (Netscape?) hat mal damit angefangen) entstand eben auch noch das "andere" (neuere und gängigere(?)) URL-encoding (bei PHP "urlencode") welches Spaces eben NICHT als %20, sondern als +, kodiert) IMHO ist das so auszulegen: In der Praxis sollte "urlencode" eigentlich ausreichen. Wer auf "Nummer Sicher" gehen will, kann auch "rawurlencode" nehmen. So, das war's... Ich hoffe, ich habe da jetzt nicht noch mehr Verwirrung erzeugt... ;-) CU, Manuel
php::bar PHP Wiki - Listenarchive