Я называю php-скрипт http://site.com/process.php, который принимает URL-адрес в качестве одного из своих параметров.for=
http://site.com/process.php
for=
http://site.com/process.php?for=http://www.anotherwebsite.com
Затем я делаю это и пытаюсь parse_url(), но parse_url () выдает ошибку разбора.
parse_url()
$uri = $_SERVER['REQUEST_URI']; // /process.php?for=http://www.anotherwebsite.com parse_url($uri);
Как я могу кодировать параметр for на отправляющей стороне (в URL) или на принимающей стороне (php), чтобы parse_url() понимал, что это просто параметр, который происходитвыглядеть как URL?
for
Перед включением вашего URL в качестве параметра get используйте urlencode
get
urlencode
$full_url = 'http://site.com/process.php?for=' . urlencode('http://www.anotherwebsite.com');
Эта функция удобна при кодировании строкидля использования в части запроса URL-адреса, как удобный способ передачи переменных на следующую страницу.
Чтобы отменить результат urlencode, используйте urldecode.Как отметил Марио в комментарии ниже, параметры $_GET уже urldecoded.
urldecode
$_GET
Ну, сначала вы должны urlencode() параметр for=, затем в process.php вы можете просто сделать
urlencode()
process.php
$url = $_GET["for"]; $url = urldecode($url); // http://www.anotherwebsite.com
Вот функции: http://php.net/manual/en/function.urlencode.php http://php.net/manual/en/function.urldecode.php