您好我正在尝试使用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是动态生成的,我无法预测将使用哪些参数。
答案 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 =”