Проблема parse_url(), когда одним из параметров является URL

StackOverflow https://stackoverflow.com/questions/4969058

  •  12-11-2019
  •  | 
  •  

Вопрос

Я вызываю PHP-скрипт http://site.com/process.php который принимает URL-адрес в качестве одного из своих параметров. for=

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

Затем я делаю это и пытаюсь parse_url() но parse_url() выдает ошибку анализа.

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

Как я могу закодировать for параметр либо на отправляющей стороне (в URL-адресе), либо на принимающей стороне (php), чтобы parse_url() понимает, что это просто параметр, похожий на URL?

Это было полезно?

Решение

Ну, сначала ты должен urlencode() тот for= параметр, затем в process.php, вы можете просто сделать

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

Вот функции:http://php.net/manual/en/function.urlencode.phphttp://php.net/manual/en/function.urldecode.php

Другие советы

Перед включением вашего URL-адреса в качестве параметра get, используйте urlencode

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

Эта функция удобна, когда кодирование строки, которая будет использоваться в Запрос часть URL, как удобно способ пройти переменные к следующему страница.


Чтобы изменить результат генеракодицетагкода, используйте generacodictagcode .Поскольку Марио указал на комментарии ниже, параметики urlencode уже Urledecoded.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top