Beim Einbauen der URLs für unter anderem Mister Wong ist mir aufgefallen, dass urlencode() von PHP völlig andere Ergebnisse liefert als das JavaScript-Pendant encodeURIComponent(), das Mister Wong bei den vorgefertigten Buttons benutzt hat.
Das Ganze ist insofern etwas problematisch, weil die Social-Bookmark-Dienste die URL bzw. die Seiten-Beschreibungen teilweise nur codiert akzeptieren und dadurch Sonderzeichen wie Umlaute nicht immer korrekt übermittelt und dargestellt werden.
Weil ich unbedingt trotzdem Textlinks haben wollte und keine Grafikbuttons, hab ich mal ein bisschen herumgesucht und bin bei captain.at auf einige vorgefertigte PHP-Funktionen gestoßen, die für PHP dasselbe leisten wie die JavaScript Funktionen encodeURIComponent(), encodeURI() und escape() (sowie die jeweiligen Gegenstücke).
Damit kann man zum Beispiel Strings direkt in PHP so codieren, dass Mister Wong Umlaute im Titel per URL korrekt übermittelt werden, Anwendungen im Zusammenspiel mit Ajax sind aber auch denkbar.
Ich habe die Funktionen bei mir allerdings nur in abgeänderter bzw. optimierter Form eingebaut. Unter anderem empfehle ich aus Performance-Gründen die " durch ' und die if-Anweisungen durch eine Switch-Anweisung zu ersetzen.
Daniel, 15. Februar 2008 um 21:37 Uhr // 3 Kommentare

Willi 16. Februar 2008 um 0:00 Uhr
Oder hinter jede if-Anweisung ein "else" schreiben :p Die Perfomance ist dann die gleich e wie bei einer Switch-Anweisung, die Übersichtlichkeit ist dann ... hm, naja.. ;)
Daniel 16. Februar 2008 um 11:34 Uhr
Nein stimmt nicht, bei einer Switch Anweisung springt er direkt zu der richtigen Auswahl ... z.B. dem "%FF", unabhängig von den Abfragen die davor kommen. Bei den If-Anweisungen checkt er beginnend bei der ersten jede einzelne if-Anweisung durch, was logischerweise um so länger dauert, je weiter hinten die passende Abfrage kommt.
Willi 16. Februar 2008 um 13:25 Uhr
Na gut, wie das PHP nu macht weiß ich nicht genau, aber im GNU Compiler ist der erzeugte ASM-Code von if..else und switch..case der Gleiche. - If you like else you won't switch... - In case you like switch you will do nothing else...