语言选择按钮URL根据当前URL进行调整

时间:2011-06-28 18:03:49

标签: php redirect language-features str-replace io-redirection

我们的网站有两种语言版本,捷克语和英语。我们在每个页面的右上角(在header.php中)有一个简单的标志,它指向捷克语索引的index_cz.php和所有页面的英语索引的index.php,而不管当前的URL。

<a href="index_cz.php" target="_self"><img src="img/Czech-icon.png" width="64" height="64" alt="Czech language version"></a>
<a href="index.php" target="_self"><img src="img/United-Kingdom-icon.png" width="64" height="64" alt="English language version">

我希望使用PHP更复杂,根据当前页面URL的内容更改按钮的URL。 例如:如果当前页面是'new.php'我希望捷克按钮现在指向'new_cz.php'而英文按钮指向'new.php'。

包含?id = 结尾的页面(无论哪个ID与该页面相关联)都使用单独的header.php并引用数据库中的相应ID,例如:

<a href="project_cz.php?id=<?php echo $det[0];?>" target="_self"><img src="img/Czech-icon.png" width="64" height="64" alt="Czech language version"></a>    
<a href="project.php?id=<?php echo $det[0];?>" target="_self"><img src="img/United-Kingdom-icon.png" width="64" height="64" alt="English language version"></a>

您能想到处理标准php页面的相应代码吗?非常感谢!

1 个答案:

答案 0 :(得分:2)

您可以使用$_SERVER['PHP_SELF']访问当前文件,但请确保在回复之前运行htmlspecialchars以防止XSS攻击。

那就是说,你可以str_replace当前文件来获得捷克语版本:

str_replace('.', '_cz.', $_SERVER['PHP_SELF'])

另一种方式也很简单:

str_replace('_cz.', '.', $_SERVER['PHP_SELF'])