gpt4 book ai didi

PHP:包含在包含的文件中

转载 作者:行者123 更新时间:2023-12-04 18:30:17 27 4
gpt4 key购买 nike

我必须一劳永逸地解决这个问题。

我目前正在从事一个 4 年的项目,用 PHP 编写并在 Apache 服务器上运行。
我们是一个大约 40 人的团队,我们每个人都使用首选的操作系统,因此我们有运行此代码的 Windows、Mac 和 Linux。我是喜欢 Ubuntu 的人之一。

无论如何,每次我克隆这个项目时,我都必须修改一些代码部分,以便它可以在我的机器上工作,因为以下旧的 include/require 问题:
所以假设我有以下文件和目录:

root/
| index.php
| framework/
| index.php
| framework.php
| config.php

总结:
  • root/index.php require('framework/index.php')
  • root/framework/index.php require('../config.php')require('framework.php')
  • 显然,上面的代码在第一个 require 上给了我一个错误,因为它在 config.php 文件夹所在的目录中寻找 root

  • 是的,我知道我们应该使用一些常量,例如 define('ROOT_DIR', path) 或在要求中使用 dirname(__DIR__)。我的问题是 这段代码在 周围的一些机器上完美运行(包括生产服务器,它也运行 Ubuntu LTS),所以认为 这个错误是由于 Apache 或 PHP 配置 造成的。
    我必须在本地运行此代码进行开发,但是 includerequire 太多了,他们不会让我更改所有原始项目的 require 所以它包含 dirname(__DIR__) 或其中的任何内容,如它被认为是不必要的。

    所以,请不要建议我对预先存在的 require 调用做任何事情。我需要知道如何更改 PHP(或者可能是另一个服务的)配置,因此当它需要文件时,它会根据需要文件的脚本检查它们,而不是与启动此 require 链的第一个脚本相关.

    也许这无关紧要,但每次我在我的 Ubuntu LTS 14.04 上重新安装 Apache2 和 PHP5 时,它的默认配置都是这样代码不会运行。我的一位同事使用 Windows(以前运行 8.1,现在他运行 10),从来没有遇到过这个问题,因为在 Windows 中,显然 XAMP 或 WAMP 或他使用的任何东西都具有允许此代码工作的默认配置。

    请帮忙。提前致谢。

    最佳答案

    也许有人对生产机器上的 include_path 有所缓和。你可以在你的开发机器上做同样的事情:
    set-include-path
    或者在你的 php.ini 中设置 include_path:
    include_path
    我在嵌套 require 语句的 require 语句上发现了另一个有趣的事情:
    comment in php-documentation, second from the top :

    When using symbolic links with PHP, specify a dotslash './page.php' path to ensure that PHP is looking in the right directory with nested requires:

    E.g. when the required actual page1.php contains other require statements to, say page2.php, PHP will search the path that the symbolic link points to, instead of the path where the symbolic link lives. To let PHP find the other page2.php in the path of the symbolic link, a require('./page2.php'); statement will solve the puzzle.


    也许其中之一可能会有所帮助。

    关于PHP:包含在包含的文件中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32660865/

    27 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com