尝试使用$_GET'url‘变量从URL获取数据:
http://mysite.com/?url=http://this.is/?q=an&?example=url
上面我想要的是粗体,但遗憾的是,$_ get ' URL‘只会得到"http:// the . is /?q=an“,因为&使它将其解释为URL中一个新变量的开始。
有没有一种方法可以忽略这些符号,这样我的脚本就可以获得我需要它的整个URL?添加到?url=的URL并不在我的控制范围之内,所以大多数工作都是这样的,但有些工作确实包含了可怕的&。在阅读了关于堆栈溢出的问题之后,我并没有抱太大希望。
发布于 2013-02-19 14:29:27
如果您完全无法控制放置在查询字符串上的参数(无论出于什么原因),您也可以通过手动解析$_SERVER['QUERY_STRING']变量来做到这一点。
$page = str_replace("url=", "", $_SERVER['QUERY_STRING']);当然,如果可能的话,您应该使用其他人发布的答案对其进行编码。
发布于 2013-02-19 14:27:26
使用urlencode()
$get_url = urlencode('http://this.is/?q=an&?example=url');
$url = 'http://mysite.com/?url=' . $get_url;发布于 2013-02-19 14:36:49
如果无法控制查询字符串,则可以使用
$query = $_SERVER['QUERY_STRING'];
$pos = strpos($query, "url=");
if ($pos !== false) {
$url = substr($query, $pos + 4);
}此代码在url=之后返回所有内容
如果有此可能,则应使用urlencode对url进行编码,以创建一个干净的url。如果不这样做,最终会得到一个带有奇怪url的服务器错误,并且不能传递多个url(因为url=之后的所有内容都被解释为url)。
https://stackoverflow.com/questions/14959830
复制相似问题