我试图在php中传递一个URL作为URL参数,但当我试图获得这个参数时,我什么都没有得到
我使用下面的url形式:
http://localhost/dispatch.php?link=www.google.com
我正试着让它通过:
$_GET['link'];
但是没有回音。有什么问题吗?
我试图在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 )