在PHP中获取URL参数

我试图在PHP中传递一个URL作为URL参数,但是当我尝试获取这个参数时,我什么也得不到

我正在使用以下url表单:

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

我试图通过:

 $_GET['link']; 

但没有回报。 问题是什么?

$_GET不是一个函数或语言结构,它只是一个variables(一个数组)。 尝试:

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

更具体地说,它是一个超全局的 ,也就是一个由PHP填充的内置variables,并且可以在所有的作用域中使用(可以在没有全局关键字的情况下在函数内部使用它)。

由于该variables可能不存在,因此可以(也应该)确保您的代码不会触发通知:

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

或者,如果您想跳过手动索引检查并可能添加进一步的validation,则可以使用filter扩展:

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

请张贴您的代码,

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

要么

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

工作…

为了确保您始终保持安全,不要使用任何不需要的代码插入,请使用FILTERS:

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

更多阅读php.net函数filter_input ,或查看不同filter的描述

用这个。 我有dispatch.php执行此操作。

 $parameter = $_SERVER['QUERY_STRING']; echo $parameter; or Just use echo $_GET['link']; 

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

 http://www.mydomain.me/index.php?state=California.php#Berkeley 

您可以将命名的锚点视为一个查询string,如下所示:

 http://www.mydomain.me/index.php?state=California.php&city=Berkeley 

然后,像这样访问它:

 $Url = $_GET['state']."#".$_GET['city']; 

我没有得到任何$_GET["..."] (例如print_r($_GET)给了一个空数组),但$_SERVER['REQUEST_URI']显示的东西应该在那里。 最后事实certificate,我只是进入网页,因为我的.htaccessredirect到那里(我的404处理程序是相同的.php文件,并在testing时在浏览器中input错字)。

只需更改名称意味着相同的PHP代码工作,一旦404redirect不踢!

所以有方法 $_GET可以返回任何东西,即使PHP代码可能是正确的。

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

Array([0] => link = http://www.google.com);

无论谁收回什么,我想他只需要将结果附在html标签中,

喜欢这个:

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