php问题包括一个包含的文件

时间:2011-09-07 02:14:54

标签: php xml file include

我遇到了在PHP中包含一个包含文件的问题。

项目

  • functions(folder)有a.php
  • xml(文件夹)有b.xml
  • 的index.php

这是我的项目结构(对不起,我无法发布图片)。 我尝试使用“ index.php ”来包含“ a.php ”而“ a.php ”正在使用“ b .XML

这就是我在XAMPP上所做的,它完美无缺:

我在 index.php 中写道:包含'functions / a.php';

a.php 中的

我写道: $ xml-> load('xml / b.xml');

但是,如果我将这些复制到我的Uni的apache服务器,则无法打开此b.xml。 这不是许可,因为当我改为绝对路径时,它有效......

提前谢谢你们: - )

3 个答案:

答案 0 :(得分:1)

在a.php中,如果使用include,则应引用../xml/b.xml 事情是,它取决于定义$ xml-> load()的时间。如果它是您自己的代码,则将路径相对于定义。否则“../xml/b.xml”应该有用。

你可以随时使用$ _SERVER ['DOCUMENT_ROOT'],但我自己喜欢将目录定义为常量(使用绝对路径)并在项目周围使用它们。

define('DIR_ROOT', $_SERVER['DOCUMENT_ROOT'] . '/');
define('DIR_FUNCTIONS', DIR_ROOT . 'functions/');
define('DIR_XML', DIR_ROOT . 'xml/');

答案 1 :(得分:0)

尝试使用set_include_path()设置应用程序根目录的包含路径;那么你应该能够包含相对于这条路径的文件。

答案 2 :(得分:0)

使用绝对路径始终更好,即使您必须构建它(例如$XML_PATH = $PATH_TO_BASE . 'xml/b.xml';

如果您不能这样做,则应将xml的父级添加到路径中。