php - 使用javascript更改php包含路径

标签 php javascript path include

如果用户更改网站的语言,我会尝试使用 javascript 更改 php 文件的包含路径。

我使用此代码来检查网站的语言是否为英语。

<script type="text/javascript">
        $(function() {
            var pathname = window.location.pathname;
            if (pathname.search('/en/') != -1){
                //I wanna insert the new path here
            }
        });
    </script>

然后我想更改包含函数

<?php include 'navigation.php'; ?>

<?php include 'navigation_en.php'; ?>

有人知道如何实现这个功能吗?或者我是否必须使用 php 检查路径名才能更改 php include 函数?

最佳答案

您无法使用纯 JavaScript 来执行此操作,因为 JavaScript 是在 PHP 处理完成后执行的。不过,您可以使用纯 PHP 做同样的事情:

$uri = $_SERVER['REQUEST_URI'];
if(preg_match('/^\/en\//', $uri)) {
    include_once('include_en.php');
}
else {
    include_once('include.php');
}

此代码假定您的 URL 格式为 http://www.mydomain.com/en/some/page.php

编辑:

由于此代码在 WordPress 内部运行,因此 $_SERVER['REQUEST_URI] 不会返回语言部分。感谢OP,在 WordPress 中执行此操作的方法是:

$lang = get_bloginfo('language');
if(preg_match('/^\/en-/', $lang)) {
    include_once('include_en.php');
}
else {
    include_once('include.php');
}

关于php - 使用javascript更改php包含路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11204122/

相关文章:

javascript - 使用nodejs在目录中递归获取所有目录

php的数字精度如何扩展它

php - 在 CSV 导出中输出列标题

php - 改进我的搜索引擎

javascript - 为数组的某些值设置样式

javascript - 如何在 Dynamic 365 CRM 客户端 Javascript 中获取用户属性?

javascript - 事件 'transitionend' 被调用得太早,它延迟渲染

Java代码找不到或定位指定的文件路径

php - 如何使数组第一个值作为第二个值的键作为php数组中的值

javascript - 脚本执行的地方