在PHP中获取URL参数

Fer*_*deh 174 php url redirect

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

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

http://localhost/dispatch.php?link=www.google.com
Run Code Online (Sandbox Code Playgroud)

我正试图通过:

$_GET['link'];
Run Code Online (Sandbox Code Playgroud)

但没有回来.问题是什么?

Álv*_*lez 255

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

<?php
echo $_GET['link'];
Run Code Online (Sandbox Code Playgroud)

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

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

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

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

<?php
echo filter_input(INPUT_GET, 'link', FILTER_SANITIZE_URL);
Run Code Online (Sandbox Code Playgroud)

  • 如果你对此一无所知,就像你应该知道的那样,"链接"是URL地址中变量的名称!所以使用$ _GET ['link']; 你需要输入这样的URL:http:// localhost /?link = test (13认同)

Mar*_*coS 26

请发布您的代码,

<?php
    echo $_GET['link'];
?>
Run Code Online (Sandbox Code Playgroud)

要么

<?php
    echo $_REQUEST['link'];
?>
Run Code Online (Sandbox Code Playgroud)

做的工作......


pat*_*ick 16

为确保您始终保持安全,不使用过滤器,请使用FILTERS:

echo filter_input(INPUT_GET,"link",FILTER_SANITIZE_STRING);
Run Code Online (Sandbox Code Playgroud)

更多关于php.net函数filter_input的阅读,或查看不同过滤器的描述


Muh*_*man 16

用这个.我在dispatch.php中执行此操作.

$parameter = $_SERVER['QUERY_STRING'];
echo $parameter;
Run Code Online (Sandbox Code Playgroud)


phi*_*hil 9

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

http://www.mydomain.me/index.php?state=California.php#Berkeley
Run Code Online (Sandbox Code Playgroud)

您可以将命名锚点视为查询字符串,如下所示:

http://www.mydomain.me/index.php?state=California.php&city=Berkeley
Run Code Online (Sandbox Code Playgroud)

然后,像这样访问它:

$Url = $_GET['state']."#".$_GET['city'];
Run Code Online (Sandbox Code Playgroud)


小智 5

我没有得到任何东西$_GET["..."](例如print_r($_GET)给出一个空数组)但$_SERVER['REQUEST_URI']显示东西应该在那里。最后发现我只能访问该网页,因为我的 .htaccess 将其重定向到那里(我的 404 处理程序是同一个 .php 文件,并且我在测试时在浏览器中犯了一个拼写错误)。

简单地更改名称意味着一旦 404 重定向没有启动,相同的 php 代码就可以工作!

因此,即使 php 代码可能是正确的,也有一些方法可以返回任何内容。 $_GET


Sau*_*tel 5

$Query_String  = explode("&", explode("?", $_SERVER['REQUEST_URI'])[1] );
var_dump($Query_String)
Run Code Online (Sandbox Code Playgroud)

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