【发布时间】:2020-07-20 22:57:49
【问题描述】:
我正在开发一种语言切换器,我使用 PHP 将 URL 从一种语言更改为另一种语言。我希望语言切换按钮(即链接)在页面加载时更改其 href 属性。这是我的代码:
<?php
$actual_link = $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'];
if (strpos($actual_link, 'fr') !== false) {
$actual_lang = 'fr';
$new_link = str_replace('/fr/','/en/',$actual_link);
}
else {
$actual_lang = 'en';
$new_link = str_replace('/en/','/fr/',$actual_link);
}
echo "
<div class='top-bar'>
<a class='language-selector' id='language-switch-btn' href='#'>Language</a>
</div>
<script type='text/javascript'>
document.getElementById('language-switch-btn').href = '".$new_link."';
</script>
";
?>
但是,我的问题是 JS 代码将 $new_link 连接到 $actual_link,导致 href 属性如下所示:localhost/website.com/fr/localhost/website.com/en/ 当我想要它时只能是 localhost/website.com/en/
知道为什么它没有用 $newlink 替换 '#' 吗?谢谢
【问题讨论】:
-
如果这是一个 JavaScript 问题,您应该分享生成的 JavaScript 代码,而不是 PHP 源代码。但我看不出
.href = 'blah'可能如何连接。您是否验证了您的 PHP 变量包含的内容? -
可以,但没有协议
localhost/website.com/en/是从当前文件夹开始的相对路径 -
你为什么在这里使用 JavaScript?只需
echo "<a href='".%new_link."'>Language</a>"! -
@Bergi 因为我是新手。很好的建议,谢谢!