【问题标题】:Warning and Fatal error calling require_once()调用 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 元素

【问题讨论】:

    标签: php include require-once


    【解决方案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
      猜你喜欢
      • 2013-11-11
      • 2014-10-21
      • 2020-09-27
      • 2016-08-15
      • 2016-08-05
      • 1970-01-01
      • 1970-01-01
      • 2012-02-18
      • 2019-01-28
      相关资源
      最近更新 更多