有文件夹路径问题迁移到新的PHP服务器。文件夹/../文件夹2

时间:2016-10-17 08:01:43

标签: php linux codeigniter

我安装了一个名为Homestead的Vagrant框,并试图运行我的应用程序。

在本地,我在Windows机器上使用PHP 7.0.9

该框在linux(Ubuntu)计算机上使用PHP 7.0.8

问题:

我正在使用带有HMVC的Codeigniter,它执行此操作: application/controllers/../modules

这会在我的机器上转换为application/modules,但在流浪盒中保持这样。

我是否可以更改设置以便在Vagrant框中工作?

1 个答案:

答案 0 :(得分:0)

解决方案:

  • 简单:创建一个文件夹application/controllers,其中包含一个文件,因此git会保存它
  • 硬(以及错误的解决方案):在CI核心中,在第400行附近,添加以下代码:(解析路径并删除../
function resolve_path($path) {
    $stack = [];
    foreach (explode('/', $path) as $segment)
        if ($segment == "..")
            array_pop($stack); else
            $stack[] = $segment;
    return implode('/', $stack);
}

$controller_path = resolve_path(APPPATH . 'controllers/' . $RTR->directory . $class . '.php');