在PHP中获取复杂的URL参数

时间:2018-03-28 10:12:05

标签: php url redirect

您好我正在尝试使用GET

从php代码中获取参数(网址)
<?php
      $url = $_GET['url'];

并使用

触发
http://localhost/run.php?url=www.google.com
在这种情况下,

$url等于www.google.com

但是,如果网址包含&#34;&amp;&#34;它不会起作用。例如:

http://localhost/run.php?url=www.google.com?action=Go&category=3&name=foo%20bar

在这种情况下,$ url等于www.google.com?action=Go,并在第一个&#34;&amp;&#34;之后省略所有内容。

如何修复此问题而无需修改实际的URL?我的目标是将包含所有参数的整个url作为字符串传递给$ url。由于url是动态生成的,我无法预测将使用哪些参数。

2 个答案:

答案 0 :(得分:0)

关于GET的维基百科文章指出:

  

这是一种用于编码可能重复的键值对的格式   键。每个键值对由&#39;&amp;&#39;分隔开。人物,每个人   通过&#39; =&#39;将键与其值分开。字符。   https://en.wikipedia.org/wiki/POST_(HTTP)

因为&#39;&amp;&#39;用于分隔它之后省略所有值的值(或准确地将它存储在下一个键值对中)。

希望有所帮助。

答案 1 :(得分:-1)

我现在找到了一种方法。

$url= $_SERVER['QUERY_STRING'];

在第一个“?”之后捕获完整的URL签到$ url。然后,我需要做的就是从$ url中删除“url =”