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

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

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

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

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

$_GET['link'];

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

8 ответов


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

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

в частности, это суперглобальная: встроенная переменная, которая заполнена 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>