2011-06-28 52 views
0

我们的网站有捷克语和英语两种语言版本。我们在每个页面的右上角(header.php内)都有一个简单的标志,它指向捷克索引的index_cz.php,而不考虑当前URL,指向所有页面的英文索引的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 =结局(与任何编号与页面相关)使用一个单独的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页面?非常感谢!

回答

2

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

这就是说,你可以再str_replace函数当前文件获得捷克版本:

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

的其他方式也很容易:

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

感谢闪电般快速反应!我已经放置了上面显示的代码(在PHP标签内)进行测试,并且这两个链接都没有任何修改地显示当前的URL。 '<?php str_replace('。','_cz。',$ _SERVER ['PHP_SELF']);?>' '<?php str_replace('_ cz。','。',$ _SERVER [ PHP_SELF']);?>' 你能看到我可能会出错的地方吗? – JoeW

+0

你也需要回应它。 – cweiske

+0

是的,我刚刚意识到,当你输入它!再次感谢,它按要求完美工作。 – JoeW