Rolf B: Regulärer Ausdruck, Ausnahme einfügen

Beitrag lesen

Hallo Jörg,

Meinst Du, dass aus z.b. & ein & werden muss?

Nein. Man muss für den passenden Kontext maskieren. & ist für HTML, du brauchst aber die Maskierung für ein URL. Oder, um ein Beispiel aus dem wirklichen Leben zu bringen: Für Karneval maskierst Du Dich auch anders als für deine Banküberfälle, nicht wahr?

In einer URL nimmt man für Bytes, die zu maskieren sind, ihren Codewert. Der Doppelpunkt hat Codewert 58 (hex: \x3A). Der Schrägstrich die 47 (hex: \x2F). Ein ä - tjaaa, hier scheiden sich die Geister, aber man empfiehlt, die Zeichen jenseits des Codes 127 durch UTF-8 zu codieren. Ein ä wäre demnach durch die Bytes \xc3 \xa4 darzustellen. Der hexadezimalen Darstellung des Codewertes wird ein % Zeichen vorangestellt. Ein : ist also %3A, ein / ist %2F, ein ä ist %C3%A4.

Ich müsste das im Detail auch nachgucken, was wo erlaubt ist, aber man ist auf der sicheren Seite, wenn man alles, was kein Buchstabe und keine Zahl ist, maskiert.

http://example.com müsstest Du also, um sicher zu sein, so übergeben:

./myscript.php?target=http%3A%2F%2Fwww.example.com

Den Punkt kannst Du lassen.

Das Schöne an der Sache ist: PHP nimmt Dir die Arbeit ab. Es gibt die Funktion urlencode. Guck in die Doku dafür.

Rolf

--
sumpsi - posui - obstruxi