【问题标题】:Simple Html Dom Parser Issue简单的 Html Dom 解析器问题
【发布时间】:2014-04-22 23:08:20
【问题描述】:

我正在尝试了解 simple_html_dom 的工作原理并从特定类别中获取一些数据。 所以我建立了一个 wp 站点来做一些测试。

我从官网拿了代码,做了一些修改以适应:

// Create DOM from URL
$html = file_get_html('http://localhost/mydemosite/category/sports/');

// Find all article blocks
foreach($html->find('div.article') as $article) {
    $item['title']   = $article->find('div.post-title', 0)->plaintext;
    $item['thumb']   = $article->find('div.post-thumbnail', 0)->plaintext;
    $item['details'] = $article->find('div.entry', 0)->plaintext;
    $articles[] = $item;
}

print_r($articles);

当我运行这个时,我得到了一个错误:

Notice: Undefined variable: articles in C:\xampp\htdocs\mydemosite\test.php on line 28

第 28 行是print_r($articles);

我的结构是:

<article class="item-list item_1">
<h2 class="post-title"><a href="http://localhost/mydemosite/category/sports/demo-post" title="mydemo post" rel="bookmark">my demo post 1</a></h2>
<p class="post-meta">
<span class="tie-date">2 mins ago</span>    
<span class="post-comments">
<a href="http://localhost/mydemosite/category/sports/demo-post/#disqus_thread" title="my demo post 1" data-disqus-identifier="1 http://localhost/mydemosite/category/sports/?p=1"></a></span>
</p>
<div class="post-thumbnail">
<a href="http://localhost/mydemosite/category/sports/demo-post/" title="my demo post 1" rel="bookmark">
<img width="300" height="160" src="http://localhost/mydemosite/wp-content/uploads/demo-post-300x160.jpg" class="attachment-tie-large wp-post-image" alt="my demo post 1">
</a>
</div>
<!-- post-thumbnail /-->
<div class="entry">
<p>Hello world... this is a demo post description, so if you want to read more...</p>
<a class="more-link" href="http://localhost/mydemosite/category/sports/demo-post">Read More »</a>
</div>
<div class="clear"></div>
</article>

【问题讨论】:

    标签: php html-parsing simpledom


    【解决方案1】:

    变量 $articles 是在 for 循环中声明的,因此存在范围问题。试试:

    // Create DOM from URL
    $html = file_get_html('myurl');
    $articles = array()
    // Find all article blocks
    foreach($html->find('div.article') as $article) {
        $item['title']   = $article->find('div.post-title', 0)->plaintext;
        $item['thumb']   = $article->find('div.post-thumbnail', 0)->plaintext;
        $item['details'] = $article->find('div.entry', 0)->plaintext;
        $articles = $item;
    }
    
    print_r($articles);
    

    【讨论】:

    • 它不起作用..当我运行它时,我得到一个白屏:Array()
    • 好的,我找到了...但我的另一个问题是如何在 中获取 img src
    猜你喜欢
    • 2019-09-27
    • 1970-01-01
    • 2010-12-25
    • 1970-01-01
    • 1970-01-01
    • 2013-05-05
    • 2012-01-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多