Frage

Ich rufe ein PHP-Skript auf http://site.com/process.php das nimmt eine URL als einen seiner Parameter. for=

http://site.com/process.php?for=http://www.anotherwebsite.com

Ich mache das dann und versuche es parse_url() aber parse_url () gibt einen Analysefehler aus.

$uri = $_SERVER['REQUEST_URI']; // /process.php?for=http://www.anotherwebsite.com
parse_url($uri);

Wie kann ich das kodieren for parameter entweder auf der sendenden Seite (in der URL) oder auf der empfangenden Seite (php), so dass parse_url() versteht, dass es nur ein Parameter ist, der zufällig wie eine URL aussieht?

War es hilfreich?

Lösung

Nun, zuerst musst du urlencode() der for= parameter, dann in process.php, können Sie einfach tun

$url = $_GET["for"];
$url = urldecode($url); // http://www.anotherwebsite.com

Hier sind die Funktionen:http://php.net/manual/en/function.urlencode.php http://php.net/manual/en/function.urldecode.php

Andere Tipps

Bevor Sie Ihre URL als get parameter, verwendung urlencode

$full_url = 'http://site.com/process.php?for=' . urlencode('http://www.anotherwebsite.com');

Diese Funktion ist praktisch, wenn codierung einer Zeichenfolge, die in einem teil einer URL abfragen, als bequeme Möglichkeit, Variablen an die nächste zu übergeben Seite.


Um das Ergebnis von umzukehren urlencode, verwenden urldecode.Wie Mario in einem Kommentar unten betonte, $_GET parameter sind bereits urldecodiert.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top