PHP [function.require]:无法打开流:没有这样的文件或目录问题

时间:2010-08-28 09:59:43

标签: php htmlpurifier

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

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

如果我编写路径

,我可以解决这个问题
./htmlpurifier/library/HTMLPurifier.auto.php

但是我希望在我的网站上的许多不同级别的文件夹中显示包含文件,而不必重新编码我的函数内部的路径,包括每次违反我的包含目的。我有没有办法让这项工作不必每次都重新编码路径?有没有办法包括完整路径?

4 个答案:

答案 0 :(得分:0)

试试这个:

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

这样你总是包含相对于当前文件路径的文件。

答案 1 :(得分:0)

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

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

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

  

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

这是明智的愿望。你走了:

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

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

答案 2 :(得分:0)

试试这个

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

答案 3 :(得分: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文件。