【问题标题】:simple_html_dom's file_get_html not working in loopsimple_html_dom 的 file_get_html 不在循环中工作
【发布时间】:2013-03-14 07:41:00
【问题描述】:

我正在使用 $html = file_get_html($url)->plaintext;从网站获取纯文本。但是如果我在某个循环中运行此代码,因为我想从一系列网站访问文本,那么对于少数网站,它会抛出错误,但如果我专门访问此功能,则会提取同一网站的纯文本仅限该网站

【问题讨论】:

  • 你在循环什么? $html = file_get_html($url)?

标签: php simple-html-dom


【解决方案1】:

试试这个,让我知道我对你想要的东西是对还是错。首先,我在服务器上有 2 个 html 文件:

→ page1.html

<html>
<head><title>HTML Page #1</title></head>
<body><div id="a">A1</div><div id="b">B1</div><div id="b">B1</div></body>
</html>

→ page2.html

<html>
<head><title>HTML Page #2</title></head>
<body><div id="a">A2</div><div id="b">B2</div><div id="b">B2</div></body>
</html>

→ 好的,那么对于您的 PHP 主页面:(与 .html 文件位于同一文件夹中)

require_once( 'simple_html_dom.php' ); // or w\e the path for your source is

// array to store series of websites:
   $url  = array( './page1.html', './page2.html' );

// array to hold plain-text for later retrieval: (if needed)
   $html = array();

// loop through series of webpages:
   foreach( $url as $key=>$value ) { 

       // get html plain-text for webpage & assign to html array.
          $html[ $key ] = file_get_html( $value )->plaintext; 

       // echo html plain text:
          echo "<br />" . $html[ $key ] . "<br />"; 

   }

   // echo $html[ 0 ]; /* <-- page1.html (if needed) */
   // echo $html[ 1 ]; /* <-- page2.html (if needed) */

输出:

HTML Page #1 A1B1B1

HTML Page #2 A2B2B2 

这是否完成了您希望代码执行的操作?

【讨论】:

    猜你喜欢
    • 2014-06-05
    • 2015-06-21
    • 2017-07-02
    • 1970-01-01
    • 2023-03-02
    • 2018-04-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多