使用if else语句,我想php检查url中的第一个文件夹是否为(en), 例: http://www.domain.com/en/newyork/car/ 如果第一个文件夹是[en],如上例所示,那么我想更改我在页面上的链接的ahref
更改链接: 烯
将链接更改为: 茹
看看上面的例子,我唯一想要改变的是en或ru,但保留当前页面的剩余网址
:如果当前页面网址为http://www.domain.com/en/newyork/car/ 链接将是俄罗斯
答案 0 :(得分:2)
<?php
$url = 'www.domain.com/en/newyork/car/';
$url_arr = explode("/en/", $url);
$new_url = implode("/ru/", $url_arr);
?>
答案 1 :(得分:1)
要获取页面的当前语言,首先必须获取当前URL的路径,然后在第一个斜杠后获取字符串。你可以这样做:
// Get the current URL
$current_url = $_SERVER['REQUEST_URI'];
// Get the 'path' portion (without things like 'http')
$url = parse_url($current_url);
// Split the String in an array
$parts = explode('/', $url['path']);
$lang = $parts[1];
$prepath = $url['scheme'] . '://' . $url['host'] . $parts[0];
// Array slice to get all remaining parts
$postpath = array_slice($parts, 2);
// Append the first part of your path, the new language, and finally
// the remainder of your URL.
$newurl = $prepath . '/' . ($lang == 'ru'?'':'ru/') . implode('/', $postpath);
在此之后,您可以在页面上使用锚点以允许用户更改:
<a href="<?php echo $newurl;?>">Change Language</a>
答案 2 :(得分:0)
function changeUrlComponent($url, $componentPos, $newVal) {
$url = parse_url($url);
$arr = explode('/',$url['path']);
$arr[$componentPos] = $newVal;
$url['path'] = implode('/',$arr);
return $url['scheme'] .'://'. $url['host'] . $url['path'];
}
echo changeUrlComponent('http://www.domain.com/en/newyork/car/', 1, 'ru');
希望这会有所帮助。另请注意,您可以根据预期的url组件数添加更多值。请参阅this。 componentPos也应该从目录/路径的1到长度开始。这将是一种比上面回答的更通用的方法,因为它们太过于与网址中存在lang的期望相结合。