Получить параметр URL в PHP


Я пытаюсь передать URL в качестве параметра url в php, но когда я пытаюсь получить этот параметр, я ничего не получаю

Я использую следующую форму url:

http://localhost/dispatch.php?link=www.google.com

Я пытаюсь получить его через:

$_GET['link'];

но ничего не вернулся. В чем проблема?

8 136

8 ответов:

$_GET - это не функция или конструкция языка-это просто переменная (массив). Попробуйте:

<?php
echo $_GET['link'];

в частности, это superglobal: встроенная переменная, которая заполняется PHP и доступна во всех областях (вы можете использовать ее внутри функции без глобальные ключевое слово).

поскольку переменная может не существовать, вы можете (и должны) убедиться, что ваш код не вызывает уведомлений с:

<?php
if (isset($_GET['link'])) {
    echo $_GET['link'];
} else {
    // Fallback behaviour goes here
}

кроме того, если вы хотите пропустить проверку вручную индекса и, возможно, добавить дополнительные проверки, вы можете использовать фильтр:

<?php
echo filter_input(INPUT_GET, 'link', FILTER_SANITIZE_URL);

пожалуйста, напишите ваш код

<?php
    echo $_GET['link'];
?>

или

<?php
    echo $_REQUEST['link'];
?>

do работа...

чтобы убедиться, что вы всегда на безопасной стороне, не получая все виды нежелательных вставки кода использовать фильтры:

echo filter_input(INPUT_GET,"link",FILTER_SANITIZE_STRING);

больше чтения на php.net функция filter_input или описание различных фильтров

использовать это. Я выполняю это в диспетчерской.РНР.

$parameter = $_SERVER['QUERY_STRING'];
echo  $parameter;

or Just use
echo $_GET['link'];

принятый ответ хорош. Но если у вас есть такой сценарий:

http://www.mydomain.me/index.php?state=California.php#Berkeley

вы можете рассматривать именованный якорь как строку запроса следующим образом:

http://www.mydomain.me/index.php?state=California.php&city=Berkeley

затем, доступ к нему следующим образом:

$Url = $_GET['state']."#".$_GET['city'];

Я ничего не получал ни за какие $_GET["..."] (например print_r($_GET) дал пустой массив), еще $_SERVER['REQUEST_URI'] показанный материал должен быть там. В конце концов оказалось, что я попал на веб-страницу только потому, что мой .htaccess перенаправлял его туда (мой обработчик 404 был таким же .php-файл, и я сделал опечатку в браузере при тестировании).

простое изменение имени означало, что тот же php-код работал, когда перенаправление 404 не срабатывало!

так есть способы $_GET не может вернуть ничего, даже если php-код может быть правильным.

     $Query_String  = explode("&", explode("?", $_SERVER['REQUEST_URI'])[1] );
    var_dump($Query_String)

массив ( [ 0] => link=www.google.com )

кого ничего не вернется, я думаю, что он просто должен вложить результат в HTML-теги

такой:

<html>
<head></head>
<body>
<?php
echo $_GET['link'];
?>
<body>
</html>