在重定向之前更改URL中的字母

时间:2015-01-08 17:01:37

标签: php

我尝试抓取当前页面网址并更改其中的某些值,然后使用header()重定向到下一页

如果我当前的网址为http://example.com/abc-def-1-xxx-g.php,我想将xxx部分更改为a,以便我的网址为http://example.com/abc-def-1-a-g.php

下载重定向之前xxx页面标题的内容

header("Location: whattoputhere.php?". $_SERVER['QUERY_STRING']);

3 个答案:

答案 0 :(得分:0)

试试这个:

$actual_link = "http://".$_SERVER[HTTP_HOST].$_SERVER[REQUEST_URI];
$url = str_replace("xxx", "a", $actual_link); 
Header("Location: ".$url);

答案 1 :(得分:0)

这应该适合你:

$str = "http://example.com/abc-def-1-xxx-g.php";
$url = str_replace("xxx", "a", $str);

//For example
echo $url;

输出:

http://example.com/abc-def-1-a-g.php

修改

要获取当前网址,请使用以下命令:

$str = "http://$_SERVER[HTTP_HOST]$_SERVER[REQUEST_URI]";

另外不要忘记在每个标题后使用exit(),这样你就可以确定脚本停止执行如下:

header("Location: $url");
exit();

答案 2 :(得分:0)

您可以在调用header()之前轻松解析字符串。

尝试parse_str,str_replace等。

你可以使用$ _SERVER ['QUERY_STRING']和$ _SERVER ['REQUEST_URI'],具体取决于你需要解析的内容:

$qs = parse_str(str_replace("$string_I_do_not_want",'',$_SERVER['REQUEST_URI']));

if ($some_value_from_string == $something_to_change) {

    $new_value = compute_my_new_value();
}
$new_location = "http://example.com/". $somepage . $my_qs_with_new_value;
header("location: $new_location");
exit;