调用 require_once() 的警告和致命错误
Posted
技术标签:
【中文标题】调用 require_once() 的警告和致命错误【英文标题】:Warning and Fatal error calling require_once() 【发布时间】:2011-03-14 12:31:09 【问题描述】:我想从其他网站获取 div 元素。
我有我的个人资料,我已经尝试使用此代码。
require_once('../simple_html_dom.php');
$html=file_get_html('http://www.example.com');
$ret=$html->find("div[id=frame-gallery]");
$ret=array_shift($ret);
echo($ret);
但是这段代码出错了
警告: 需要一次(../simple_html_dom.php) [function.require-once]:未能 打开流:没有这样的文件或目录 在 E:\wamp\www\in.com\components\com_content\view.php 在第 22 行
致命错误:require_once() [function.require]:打开失败 需要'../simple_html_dom.php' (include_path='.;./includes;./pear') 在 E:\wamp\www\in.com\components\com_content\view.php 在第 22 行
我坚持这个请帮助我使用代码 sn-ps 从网站获取特定的 div 元素
【问题讨论】:
【参考方案1】:文件 simple_html_dom.php
不是您告诉 PHP 查找它的位置。
require_once('../simple_html_dom.php');
为了安全起见,请尝试使用完整路径而不是相对路径。
require_once('E:\wamp\www\in.com\components\simple_html_dom.php');
顺便说一句,如果上面的完整路径不正确,那是你的问题。这是 PHP 正在尝试的路径。
澄清:我只是建议 OP 切换到绝对路径来识别和确认问题的根源。使用绝对路径进入生产环境并不是一个好主意。
【讨论】:
@Maerlyn:为了确保可移植性,您可以在 index.php 文件中定义一个常量,例如const ROOT = __DIR__;
。但是恕我直言,相对路径绝对没问题,至少我从来没有遇到过问题;)
我同意,相对路径没问题 :)
@Maerlyn:我并不是要建议 OP 切换到绝对路径。请参阅我的答案底部的说明。
非常感谢...这解决了我的问题,但 div iam 获取的另一件事是所有图像和徽标,它显示在一行中........我想要将其格式化为 3/3 网格.....如何去做。
你需要打开一个新问题:)【参考方案2】:
require 和 include 路径在 PHP 中可能很棘手。尽可能使用完整路径。您会发现 $_SERVER['DOCUMENT_ROOT'] 对此很有用。
【讨论】:
【参考方案3】:您的 inlude_path 应包含“.”,表示当前目录。
但是,如果您在通过相对名称包含文件时遇到问题,请尝试使用绝对名称,例如 require_once('E:\wamp\www\in.com\components\simple_html_dom.php');
但最好是这样:
require_once 'E:/wamp/www/in.com/components/simple_html_dom.php';
【讨论】:
不,您不需要在include_path
中包含.
。仅当路径既不是流包装器,也不是绝对的,也不是相对的(在这种情况下是相对的)时,PHP 才考虑include_path
。以上是关于调用 require_once() 的警告和致命错误的主要内容,如果未能解决你的问题,请参考以下文章
Joomla3.6致命错误:require_once():需要打开失败
Joomla3.6致命错误:require_once():需要打开失败
致命错误:require_once() [function.require]:无法打开所需的 global.php