我试图在php中传递一个URL作为URL参数,但当我试图获得这个参数时,我什么都没有得到

我使用下面的url形式:

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

我正试着让它通过:

$_GET['link'];

但是没有回音。有什么问题吗?


当前回答

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

数组 ( [0] => link=www.google.com )

其他回答

用这个:

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

或者直接用:

$parameter = $_GET['link'];
echo $parameter ;

$_GET不是函数或语言构造——它只是一个变量(数组)。试一试:

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

特别是,它是一个超全局变量:一个由PHP填充的内置变量,在所有作用域中都可用(可以在没有global关键字的函数中使用它)。

因为变量可能不存在,你可以(也应该)确保你的代码不会触发通知:

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

或者,如果你想跳过手动索引检查,并可能添加进一步的验证,你可以使用过滤器扩展:

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

最后但并非最不重要的是,你可以使用空合并操作符(自PHP/7.0以来可用)来处理缺失的参数:

echo $_GET['link'] ?? 'Fallback value';

请张贴你的代码,

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

or

<?php
    echo $_REQUEST['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'];
$Query_String  = explode("&", explode("?", $_SERVER['REQUEST_URI'])[1] );
var_dump($Query_String)

数组 ( [0] => link=www.google.com )