我正在尝试在php中将一个URL作为url参数传递,但是当我尝试获取该参数时却什么也得不到。
我正在使用以下url形式:
http://localhost/dispatch.php?link=www.google.com
我正在尝试通过:
$_GET['link'];
但是没有返回任何东西。问题出在哪里?
$_GET
不是一个函数或语言结构,它只是一个变量(一个数组)。尝试一下:
<?php
echo $_GET['link'];
<?php
if (isset($_GET['link'])) {
echo $_GET['link'];
} else {
// Fallback behaviour goes here
}
<?php
echo filter_input(INPUT_GET, 'link', FILTER_SANITIZE_URL);
echo $_GET['link'] ?? 'Fallback value';
localhost
上使用WAMP,但这个解决方案不起作用。 http://localhost/station?type=2
echo $_GET['type'];
是null
。 - NineCattoRulesparse_str(parse_url($actual_link)['query'], $params);
。更多信息请参见 https://dev59.com/bGgu5IYBdhLWcg3wOUq-#11480852。 - NineCattoRules<?php
echo $_GET['link'];
?>
或者<?php
echo $_REQUEST['link'];
?>
做工作...
使用这个:
$parameter = $_SERVER['QUERY_STRING'];
echo $parameter;
或者直接使用:
$parameter = $_GET['link'];
echo $parameter ;
为了确保您始终处于安全状态,而又不会出现各种不需要的代码插入,请使用过滤器:
echo filter_input(INPUT_GET,"link",FILTER_SANITIZE_STRING);
更多关于php.net函数filter_input的阅读材料,或查看不同筛选器的说明
这个答案是不错的。但是如果你有这样的场景:
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文件,而我在测试时在浏览器中输入错误)。$_GET
返回空值。$Query_String = explode("&", explode("?", $_SERVER['REQUEST_URI'])[1] );
var_dump($Query_String)
数组 ( [ 0] => 链接=www.google.com )
$_GET
参数执行var_dump
,它应该在那里。 - Naftali$_REQUEST['link']
能用吗?同时请注意,索引键link
的大小写敏感,要与 URL 中的一致。 - Dutchie432