我想删除$ _SERVER ['REQUEST_URI']输出的第一个文件夹;
// I use it as language switcher in my website, here's how it works:
<?php $currenturl=$_SERVER['REQUEST_URI']; ?>
<a href="https://mysite.com/<?php echo $currenturl ?>">United States</a>
<a href="https://mysite.com/ca<?php echo $currenturl ?>">Canada</a>
<a href="https://mysite.com/br<?php echo $currenturl ?>">Brasil</a>
问题是,例如在加拿大,它输出:
https://mysite.com/ca/ca/mypage
应该是
答案 0 :(得分:1)
使用 str_replace
<?php
$currenturl=$_SERVER['REQUEST_URI'];
$currenturl=str_replace('/ca','',$currenturl); // I have added it here
?>
<a href="https://mysite.com/<?php echo $currenturl ?>">United States</a>
<a href="https://mysite.com/ca<?php echo $currenturl ?>">Canada</a>
<a href="https://mysite.com/br<?php echo $currenturl ?>">Brasil</a>
答案 1 :(得分:1)
好吧,我认为您正在尝试获取路径的文件名,而不是删除第一个文件夹。 尝试以下代码:
$currenturl=basename($_SERVER['REQUEST_URI']);
答案 2 :(得分:0)
$_SERVER['REQUEST_URI']
由php提供,它不是你可以从你的htaccess文件中删除的东西。你需要在php中删除它:
<?php $currenturl=preg_replace('#(/[a-z]{2})?(/.*)#','${2}',$_SERVER['REQUEST_URI']); ?>
答案 3 :(得分:0)
我使用了Shankar Damodaran的稍微修改过的例子 -
<?php
$currenturl = $_SERVER['REQUEST_URI'];
$languge_folder = array('/en', '/ru', '/ua');
$currenturl_en = str_replace($languge_folder,'',$currenturl);
$currenturl_ru = str_replace($languge_folder,'',$currenturl);
$currenturl_ua = str_replace($languge_folder,'',$currenturl);
?>
<select id="select-language" onchange="window.location.href=this.value">
<option value="/ua/<?php echo $currenturl_ua; ?>" selected="selected">Ukrainian</option>
<option value="/ru/<?php echo $currenturl_ru; ?>" >Russian</option>
<option value="/en/<?php echo $currenturl_en; ?>" >English</option>
</select>