语言选择按钮URL改编自当前URL


Language choice button URL adapted from current URL

我们的网站有两种语言版本,捷克语和英语。我们在每个页面的右上角(在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页面吗?非常感谢!

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

也就是说,您可以str_replace当前文件以获得捷克版本:

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

另一种方法也很简单:

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