需要防弹此PHP包括。无法打开流

时间:2009-12-23 00:12:31

标签: php

我的文件中有一些函数需要taxonomy.php才能执行。我试图像这样包含文件...(这是从functions.php调用的,它位于wp_content / themes / mytheme /

include($_SERVER['DOCUMENT_ROOT'] .'/wp-admin/includes/taxonomy.php');

但是,根据特定的服务器设置,它的命中或未命中(主要是命中)是否会找到包含。在未找到的情况下,我收到此错误...

警告:include(/home/user/domainname.com/wp-admin/includes/taxonomy.php)[function.include]:无法打开流:/ home / user / domainname中没有此类文件或目录。第10行的com / testing123 / wp-content / themes / mytheme / functions.php

更新:假设我已经通过使用DOCUMENT_ROOT做了尽可能多的工作,是否有办法避免在找不到文件时发生错误?我将在任何需要taxonomy.php的函数中检查function_exists,以便抑制错误......

2 个答案:

答案 0 :(得分:1)

嗯,防止这种情况的唯一方法是在部署它的每台服务器上实际配置它。如果你不能认为document_root是一个可靠的因素,我无法想象任何其他变量可以给你一个更好的结果。

你可以开始搜索taxonomy.php,但这很昂贵,而且非常容易出错或选择错误的文件(如果我的邻居在/home/user/domainname2.com安装了wordpress会怎么样?

答案 1 :(得分:0)

如果您的应用程序依赖特定文件,则应使用require / require_once确保您的应用程序无法部分加载,尽管错过了所需的文件。

至于确保文件始终存在并且位于您需要的位置,您可以将其移动到配置文件并允许运行该软件的用户进行设置,同时自动尝试查找该文件中的查找。用户无能为力。