0

我的一个功能包括以下错误。

require(../htmlpurifier/library/HTMLPurifier.auto.php) [function.require]: failed to open stream: No such file or directory

如果我对路径进行编码,我可以纠正这个问题

./htmlpurifier/library/HTMLPurifier.auto.php

但是我想在我的网站上的许多不同级别的文件夹中显示包含文件,而不必每次都重新编码我的函数包含中的路径,这违背了我的包含的目的。有没有一种方法可以让我完成这项工作而不必每次都重新编码路径?有没有办法包含完整路径?

4

4 回答 4

0

尝试这个

require (dirname(__FILE__).'/../htmlpurifier/library/HTMLPurifier.auto.php');
于 2010-08-28T12:45:50.897 回答
0

如何将此 .php 文件的路径配置为脚本中的配置变量?大概您将在所有页面中加载一些常用函数库,因此只需执行以下操作:

$PATH_TO_PURIFIER = 'C:\this\that\whatever\HTMLPurifier.auto.php';

在那个公共文件中,那么你就可以做

include('commonstuff.php');
include($PATH_TO_PURIFIER);

只要 commonstuff.php 在您的 PHP 的 include_path 中的某个位置,这样做比尝试在其他任何地方动态计算路径要可靠得多。特别是如果您的目录结构可能发生变化,导致计算出的路径无效并迫使您再次更改每个 PHP 文件。

于 2010-08-28T15:22:22.733 回答
0

尝试这个:

require realpath(dirname(__FILE__) . '/htmlpurifier/library/HTMLPurifier.auto.php');

这样,您始终包含相对于当前文件路径的文件。

于 2010-08-28T10:04:04.680 回答
0

您正在使用错误的路径。
把这两条线放在一起,感受一下不同。

../htmlpurifier/library/HTMLPurifier.auto.php
./htmlpurifier/library/HTMLPurifier.auto.php

那是两条不同的路径,永远不会同时工作。后一个指向当前目录,而第一个指向当前目录 - 更高一级。

但是我想在我的网站上的许多不同级别的文件夹中显示包含文件,而不必重新编码我的函数中的路径

这是明智的愿望。干得好:

require $_SERVER['DOCUMENT_ROOT'].'/htmlpurifier/library/HTMLPurifier.auto.php';

(假设这个 htmlpurifier 文件夹位于文档根目录中)

于 2010-08-28T10:10:10.583 回答