在PHP中获取URL参数

时间:2011-05-04 14:16:21

标签: php url redirect

我正在尝试在php中将URL作为url参数传递,但是当我尝试获取此参数时,我什么都没得到

我正在使用以下网址表单:

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

我正试图通过:

$_GET['link'];

但没有回来。有什么问题?

9 个答案:

答案 0 :(得分:234)

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

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

特别是,它是一个superglobal:一个由PHP填充的内置变量,可在所有范围内使用(您可以在没有global关键字的函数内部使用它。)

由于变量可能不存在,您可以(并且应该)确保您的代码不会触发通知:

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

或者,如果您想跳过手动索引检查并可能添加更多验证,可以使用filter扩展名:

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

答案 1 :(得分:25)

请发布您的代码,

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

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

工作......

答案 2 :(得分:16)

为了确保您始终保持安全,不使用过滤器进行各种不需要的代码插入:

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

更多阅读php.net function filter_input,或查看the description of the different filters

答案 3 :(得分:12)

使用此:

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

或者只是使用:

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

答案 4 :(得分:7)

接受的答案是好的。但是如果你有这样的场景:

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'];

答案 5 :(得分:2)

我没有为$_GET["..."]获取任何内容(例如print_r($_GET)给出了一个空数组)但$_SERVER['REQUEST_URI']显示的内容应该存在。最后我发现我只是进入网页,因为我的.htaccess正在重定向它(我的404处理程序是相同的.php文件,我在测试时在浏览器中输了一个错字)。

简单地更改名称意味着一旦404重定向没有启动,相同的PHP代码就会起作用!

所以有些方法 $_GET即使php代码可能正确也无法返回任何内容。

答案 6 :(得分:2)

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

<强>阵        (         [0] =&gt;链接= www.google.com        )

答案 7 :(得分:0)

没有人得到任何回报,我认为他只需要将结果包含在html标签中,

像这样:

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

答案 8 :(得分:0)

正如阿尔瓦罗所说,$ _GET不是一个函数,而是一个包含参数的数组 因此,您可以使用

从该数组中检索一个元素
<?php
$link = $_GET['link'];
echo $link;
?>

期望的操作次数:

www.google.com