PHP获取、修改和显示传入URL

PHP获取、修改和显示传入URL,php,Php,我们将目录中的所有传入流量定向到特定页面,因为并非所有内容都已准备就绪。正在将流量重定向到特定页面。就是这样,URL结构也不漂亮。我需要得到传入的URL-在重定向之前,修改它的一部分并在页面上显示它 我可以像这样获取传入的URL $incoming\u link=“http://$\u服务器[http\u主机]$\u服务器[REQUEST\u URI]” 将输出以下内容:http://example.com/dir1/dir2/dir3/dir4-lang/Page.php 我需要获取该url,

我们将目录中的所有传入流量定向到特定页面,因为并非所有内容都已准备就绪。正在将流量重定向到特定页面。就是这样,URL结构也不漂亮。我需要得到传入的URL-在重定向之前,修改它的一部分并在页面上显示它

我可以像这样获取传入的URL
$incoming\u link=“http://$\u服务器[http\u主机]$\u服务器[REQUEST\u URI]”

将输出以下内容:
http://example.com/dir1/dir2/dir3/dir4-lang/Page.php

我需要获取该url,并且只将/dir4 lang/更改为/dir4 newLang/以便在页面上显示的url为
http://example.com/dir1/dir2/dir3/dir4-newLang/Page.php

我认为我的思路是正确的,但需要以下方面的帮助:

$url = "http://$_SERVER[HTTP_HOST]$_SERVER[REQUEST_URI]";
$my_var = 'en-en';
$temp = explode( '/'  , $url );
$temp[6] = $my_var;
$url = implode( '/' , $temp );

它很近,但传入的URL是,我正在输出

请尝试以下操作:

$my_var = 'dir4-newLang';
$temp = explode( '/'  , $_SERVER['REQUEST_URI'] );
$key = array_search('dir4-lang', $temp);
$temp[$key] = $my_var;
$last = count($temp) - 1;
$temp[$last] = strstr($temp[$last], '?');
echo $url = "http://$_SERVER[HTTP_HOST]" . implode( '/' , $temp );

所以
http://example.com/dir1/dir2/dir3/dir4-lang/Page.php?stuff
输出
http://example.com/dir1/dir2/dir3/dir4-newLang/?stuff

在您的web服务器配置中添加重写规则可能会更好。是的,谢谢,我完全做到了。如果你想要互联网积分,请回答,我会给你打正确的分数。thx用于轻推!ShaunUK,这个实例我只需要显示一个修改过的链接,而不是将任何人指向它$url=str_replace(“/dir4 lang/”,“/en en/”,$url);