在域名或文件名后附加URL字符串

时间:2016-02-18 18:19:24

标签: php redirect

我将一个网址作为参数传递给下一页。 ?url = http://domain.com我想为查询字符串或网址设置额外的参数。但仅当查询字符串中存在特定域时。 我试过了

$url = preg_replace('{http://www.domain.com}','http://www.domain.com?foo=bar/',$_GET['url']);

但是当存在文件名或其他参数时,这不起作用。 任何帮助表示赞赏。

2 个答案:

答案 0 :(得分:0)

如果要将一些参数放在查询字符串的开头,可以使用parse_url函数:

$url = "http://" . $_SERVER['SERVER_NAME'] . $_SERVER['REQUEST_URI'];

$parsed_url = parse_url($url);
$new_url = $parsed_url['path'] ."?foo=bar" . ((isset($parsed_url['query']))? urlencode("&").$parsed_url['query'] : "");
var_dump($new_url);

// the output: string(45) "http://www.domain.com?foo=bar%26param=value" 

答案 1 :(得分:0)

这将做你想要的:

$url = "http://$_SERVER[HTTP_HOST]$_SERVER[REQUEST_URI]"; // the URL you want to inject the parameters into
$params = "new=yes!"; // the new parameters you want to add at the beginning
if (strpos($url, "?") !== false) {
        list($url, $b) = explode("?", $url, 2);
        $params = "$params&$b";
}
$url .= "?".$params;

输出:http://example.com/example.php?new=yes!&a=b&c=no