Nikki: URL wie im Browser geht wohl nicht, oder?

Hi,

ich möcht eine URL exact so formatieren wie im Browser.

Dachte mir muss ja einfach sein, schliesslich sind funktionen
wie urlencode ja dafür da. Aber es geht nicht.

Kennt Ihr eine Lösung?

$a = 'http://test.xy/?q=http://abc&w=1 2 3';

echo '<h5>Browser macht daraus : http://test.xy/?q=http://abc&w=1%202%203</h5>';
echo '<h5>urlencode macht daraus: '.urlencode($a).'</h5>';
echo '<h5>rawurlencode macht daraus: '.rawurlencode($a).'</h5>';

Nikki

  1. Hello out there!

    Kennt Ihr eine Lösung?

    Für welches Problem? Wie soll der URI aussehen?

    $a = 'http://test.xy/?q=http://abc&w=1 2 3';

    So: 'http://test.xy/?q=http://abc&w=1'? Und was sollen die '2' und die '3'?

    Ein URI [RFC3986] darf keine Leerzeichen enthalten.

    Soll der Wert des Parameters w Leerzeichen enthalten, müssen diese im URI prozent-encodiert werden: 'http://test.xy/?q=http://abc&w=1%202%203'

    See ya up the road,
    Gunnar

    --
    „Wer Gründe anhört, kommt in Gefahr nachzugeben.“ (Goethe)
    1. Hello out there!

      'http://test.xy/?q=http://abc&w=1%202%203'

      Im HTML-Kontext muss das '&' auch noch maskiert werden. [HTML401 §B.2.2]

      See ya up the road,
      Gunnar

      --
      „Wer Gründe anhört, kommt in Gefahr nachzugeben.“ (Goethe)
  2. echo $begrüßung;

    ich möcht eine URL exact so formatieren wie im Browser.
    Dachte mir muss ja einfach sein, schliesslich sind funktionen wie urlencode ja dafür da. Aber es geht nicht.

    Sie sind nicht dafür da, eine URL zu formatieren, sondern Daten URL-gerecht zu kodieren. Oder anders gesagt: Daten, die du als Teil einer URL übertragen möchtest, müssen kodiert werden, damit sie nicht als Bestandteil der URL angesehen werden.

    Kennt Ihr eine Lösung?

    Im PHP-Handbuch sind zu den von dir genannten Funktionen Anwendungsbeispiele angeführt.

    echo "$verabschiedung $name";