Banner Grafik Banner Grafik
  • PHP urlencode vs. JS encodeURIComponent

    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

    technorati bookmark icondigg bookmark icondelicious bookmark iconMister Wong Bookmark Iconyigg bookmark icongoogle bookmark iconTrackback URL für diesen Eintrag
    Verwandte Artikel
    • Mit PHP & SQL relevante Blogeinträge zeigen
    • JavaScript- und CSS-Datei-Minimierung
    • Mehrere IE Versionen in einem Programm
    • Und- und Fragezeichen in der URL
    • Kostenloses Website Monitoring
    • mod_rewrite und Ampersands in der URL
    • Link-Liste wird zu Kalender
  • 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...

    Kommentar schreiben

    * notwendig

    * notwendig (nicht öffentlich)

Daniel Schlessmann / Illustration

Daniel Schlessmann, 24, Mediengestalter und Informatik-Student

bloggt auf dieser Seite über Neues im Netz, sein Studium, Musik und was ihn gerade sonst noch beschäftigt.

mehr herausfinden »

_ Kalender
MoDiMiDoFrSaSo
«Februar 2008»
    010203
04050607080910
11121314151617
18192021222324
2526272829  
_ TAGS
Schön Neu! Datenschutz Browsersuppe Statistik Resümee JavaScript PHP Wii Studium Schietwedder Wochenende Design Design-Tipps World of Warcraft Movies Musik Sonne Gaming Internet Auf die Ohren Spaß & Unsinn Webdevelopment mod_rewrite Marketing Internet Explorer SQL Code-Schnipsel Wettbewerbe Google Chrome Software SWT Themes Illustration Portfolio Illustrator Studierendenausweis Spam LHC Monitoring SEO Mathematik Theoretische Informatik IBS Party TrackMania Fotografien Welt Systemadministration Patches Comic Tests Video Weihnachten Java Security iPhone Handy Politik Wahlen Trier VPS Linux Ubuntu CSS Tools Tarife Steam E-Mail
eldanilo.de * rss feedeldanilo.de * feed abonnieren