Nina: invalide Zeichen in URL entfernen

Hi,

verwendet man in einer URL Sonderzeichen oder Leerzeichen, so werden diese ja z.B. durch %20 o.ä. ersetzt. Da das nicht schön und nicht valide ist, fände ich das super, wenn diese Zeichen einfach entfernt werden könnten.
Die URL beinhaltet die eindeutige ID, welche von einem String gefolgt wird. Dieser String kann durchaus gekürzt werden, wenn dadurch die URL valide wird. url_encode Ergebnisse sehen nicht sehr toll aus. Alles, was ein %.. benötigt, soll weg.

Wie geht das am geschicktesten?
Danke

  1. Hallo

    verwendet man in einer URL Sonderzeichen oder Leerzeichen, so werden diese ja z.B. durch %20 o.ä. ersetzt. Da das nicht schön und nicht valide ist, fände ich das super, wenn diese Zeichen einfach entfernt werden könnten.
    Die URL beinhaltet die eindeutige ID, welche von einem String gefolgt wird. Dieser String kann durchaus gekürzt werden, wenn dadurch die URL valide wird. url_encode Ergebnisse sehen nicht sehr toll aus. Alles, was ein %.. benötigt, soll weg.

    1. URLs mit Sonderzeichen, die maskiert werden müssen, werden erst durch die Behandlung mit url_encode valide. Ohne die Maskierung sind sie es nicht.

    2. Ohne die Maskierung wird eine solche URL, außer im MSIE, nicht geladen werden können, _weil_ sie invalid ist.

    3. Die einfachste Möglichkeit, die Notwendigkeit der Maskierung zu verhindern, ist es, keine Sonderzeichen in URLs zu verwenden.

    Tschö, Auge

    --
    Die Musik drückt aus, was nicht gesagt werden kann und worüber es unmöglich ist zu schweigen.
    (Victor Hugo)
    Veranstaltungsdatenbank Vdb 0.1
      1. Die einfachste Möglichkeit, die Notwendigkeit der Maskierung zu verhindern, ist es, keine Sonderzeichen in URLs zu verwenden.

      Ja, würde deshalb gerne die schadhaften Zeichen herauslöschen, jedoch die "normalen Buchstaben" drin lassen. Doch um auszuschließen, dass ich ein Zeichen vergesse und um nicht jedes einzelne "manuell" ersetzen zu müssen, wüsste ich gerne die passende Funktion, die dieses Problem löst.

      1. echo $begrüßung;

        1. Die einfachste Möglichkeit, die Notwendigkeit der Maskierung zu verhindern, ist es, keine Sonderzeichen in URLs zu verwenden.
          Ja, würde deshalb gerne die schadhaften Zeichen herauslöschen, jedoch die "normalen Buchstaben" drin lassen. Doch um auszuschließen, dass ich ein Zeichen vergesse und um nicht jedes einzelne "manuell" ersetzen zu müssen, wüsste ich gerne die passende Funktion, die dieses Problem löst.

        Es gibt keine (vorgefertigte) passende Funktion für diese Eitelkeits-Operation. Lies in der Beschreibung von url_encode(), welche Zeichen umgewandelt werden und berücksichtige diese. Suchen-und-Ersetzen-Funktionen gibt es unter den String-Funktionen (z.B. strtr() und str_replace()). Oder einfacher: Nimm alles was nicht Buchstaben a..z, A..Z, die Ziffern 0..9 und - und _ ist per regulärem Ausdruck raus.

        echo "$verabschiedung $name";

        1. Hallo

          1. Die einfachste Möglichkeit, die Notwendigkeit der Maskierung zu verhindern, ist es, keine Sonderzeichen in URLs zu verwenden.
            Ja, würde deshalb gerne die schadhaften Zeichen herauslöschen, jedoch die "normalen Buchstaben" drin lassen. Doch um auszuschließen, dass ich ein Zeichen vergesse und um nicht jedes einzelne "manuell" ersetzen zu müssen, wüsste ich gerne die passende Funktion, die dieses Problem löst.

          Lies in der Beschreibung von url_encode(), welche Zeichen umgewandelt werden und berücksichtige diese. Suchen-und-Ersetzen-Funktionen gibt es unter den String-Funktionen (z.B. strtr() und str_replace()). Oder einfacher: Nimm alles was nicht Buchstaben a..z, A..Z, die Ziffern 0..9 und - und _ ist per regulärem Ausdruck raus.

          Ist jetzt eigentlich vom Umbenennen von Dateien die Rede, um Umlaute und Leerzeichen aus den Dateinamen zu entfernen? Kann man dann nicht eine Liste (Array) der betroffenen Dateinamen erstellen, die Namen mit strtr() (mit Array als Parameter der zu ersetzenden Zeichen) ändern[1] und die Datei mit rename() umbenennen?

          [1] Soweit es nur um deutsche Umlaute und das Leerzeichen geht, bleibt das ja übersichtlich.

          Tschö, Auge

          --
          Die Musik drückt aus, was nicht gesagt werden kann und worüber es unmöglich ist zu schweigen.
          (Victor Hugo)
          Veranstaltungsdatenbank Vdb 0.1