Tom: urlencode

Hello,

auf dem Server gibt es z.B.: ein Bildverzeichnis mit Bildern:

/klöndeele/bilder/Dieter draußen.jpg

Auf dem Server machen die Sonderzeichenn i.d.R. keine Probleme.
Nun soll aber diesser Pfad in einen <img>-Tag gestopft werden.
Gibt es eine fertige Funktion dafür, die ich übersehen habe?

UrlEncode() würde ja leider die Slashes auch codieren. Das ist aber falsch.
Wie ist das bei Windows. Welche Pfadtrennzeichen kommen da in PHP an? Ich habe ja leider[tm] immer noch kein Testsystem auf Windows...

Harzliche Grüße aus http://www.annerschbarrich.de

Tom

--
Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
Nur selber lernen macht schlau
  1. Hello,

    ich habe da nun dies gebastelt:

    $path='/klöndeele/bilder/Dieter draußen.jpg';

    $link = implode('/',array_map('urlencode',explode('/',$path)));

    Hat jemand eine bessere Idee?

    Harzliche Grüße aus http://www.annerschbarrich.de

    Tom

    --
    Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
    Nur selber lernen macht schlau
    1. Hallo,

      $path='/klöndeele/bilder/Dieter draußen.jpg';

      $link = implode('/',array_map('urlencode',explode('/',$path)));

      Hat jemand eine bessere Idee?

      Wie waere es mit:

      $link = str_replace("%2F","/",urlencode($path));

      ?

      MfG, Thomas

      1. Hello Thomas,

        $path='/klöndeele/bilder/Dieter draußen.jpg';

        $link = implode('/',array_map('urlencode',explode('/',$path)));

        Hat jemand eine bessere Idee?

        Wie waere es mit:

        $link = str_replace("%2F","/",urlencode($path));

        Auf den ersten Blick verblüffend und wohl auch performanter als meine Lösung.
        Muss ich jetzt glatt mal untersuchen, was passiert, wenn noch Parameter dranhängen an der URL.
        Von Scan des Directorys können sie nocht kommen, aber an einer anderen Stelle aus einer Tabelle, in die ich Links eintrage.

        Wenn die URI aus der Adressleiste übernommen wird, könnte dann schon mal stehen:

        http://domain.tld/m%81llsammler/%81berfl%81ssige+Bilder.php?userdir=%2FS%94ren%2Fschule&cmd=del

        Dann ist der String aber schon encoded.

        Da muss ich wohl noch eine Prüfung einbauen, ob überhaupt noch encoded werden muss oder nicht. Wenn jemand daten in ein Input-Feld eingibt, kann er das ja im Klartext, oder aber auch mittels copy & Paste aus der Adressleiste ...

        Mir scheint, dass Deine Lösung schlussendlich funktioniert, die Probleme liegen schon an einer andere Stelle.

        Harzliche Grüße aus http://www.annerschbarrich.de

        Tom

        --
        Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
        Nur selber lernen macht schlau