2012-07-12 67 views
0

我下载的文件simple_html_dom.php并将其上传到我的Web服务器,我立即用一个简单的脚本测试它,但它不会工作,或者至少我想这不会因为它不输出任何东西。simple_html_dom.php解析器不工作

这里的脚本:

<?php 
require('simple_html_dom.php'); 

// Retrieve the DOM from a given URL 
$html = file_get_html('http://davidwalsh.name/'); 

// Find all "A" tags and print their HREFs 
foreach($html->find('a') as $e) { 
    echo $e->innertext . '<br>'; 
} 
?> 

我从这个网站http://davidwalsh.name/php-notifications拿到剧本并提出其他网站相同的,所以我不明白为什么它不会输出任何东西。

我的猜测是,脚本是不能从其他网站获取的任何数据,像我遇到这里走来的问题:Retrieving cross-domain data php

如果是像这样,能有任何方法来避免这个问题?

在BIno Carlos对我之前链接的问题的回答中,他声明“这不是一个真正的跨域问题,因为您正在从服务器而不是浏览器加载数据”,所以可能会有一种方法来加载来自浏览器的数据?

所以,通过user868766在他的回答提出,我想这两个函数ini_set方法没有报告任何错误,所以它看起来像脚本工作显然就好了。当我试图在$的的print_r()方法HTML时,它的输出如下:

simple_html_dom Object ([root] => simple_html_dom_node Object ([nodetype] => 5 [tag] => root [attr] => Array () [children] => Array () [nodes] => Array () [parent] => [_] => Array ([0] => -1 [1] => 1) [dom:simple_html_dom_node:private] => simple_html_dom Object *RECURSION*) [nodes] => Array ([0] => simple_html_dom_node Object ([nodetype] => 5 [tag] => root [attr] => Array () [children] => Array () [nodes] => Array () [parent] => [_] => Array ([0] => -1 [1] => 1) [dom:simple_html_dom_node:private] => simple_html_dom Object *RECURSION*)) [callback] => [lowercase] => 1 [pos:protected] => 0 [char:protected] => [size:protected] => 0 [cursor:protected] => 1 [parent:protected] => simple_html_dom_node Object ([nodetype] => 5 [tag] => root [attr] => Array () [children] => Array () [nodes] => Array () [parent] => [_] => Array ([0] => -1 [1] => 1) [dom:simple_html_dom_node:private] => simple_html_dom Object *RECURSION*) [token_blank:protected] => [token_equal:protected] => =/> [token_slash:protected] => /> [token_attr:protected] => > [self_closing_tags:protected] => Array ([img] => 1 [br] => 1 [input] => 1 [meta] => 1 [link] => 1 [hr] => 1 [base] => 1 [embed] => 1 [spacer] => 1) [block_tags:protected] => Array ([root] => 1 [body] => 1 [form] => 1 [div] => 1 [span] => 1 [table] => 1) [optional_closing_tags:protected] => Array ([tr] => Array ([tr] => 1 [td] => 1 [th] => 1) [th] => Array ([th] => 1) [td] => Array ([td] => 1) [li] => Array ([li] => 1) [dt] => Array ([dt] => 1 [dd] => 1) [dd] => Array ([dd] => 1 [dt] => 1) [dl] => Array ([dd] => 1 [dt] => 1) [p] => Array ([p] => 1) [nobr] => Array ([nobr] => 1)) [doc:protected] => [noise:protected] => Array ()) 
+0

请定义_won't WORK_。 – Florent 2012-07-12 10:18:17

+1

您是否已完成** ANY **基本调试,例如转储$ html的值以确保您收到了一些东西? – 2012-07-12 10:19:07

+1

另外,为什么不使用内置的DOMDocument功能? http://www.ibm.com/developerworks/library/os-xmldomphp/ – 2012-07-12 10:19:38

回答

0

您发布的代码是为我工作的罚款。

认为你可以尝试这些,下面放线对脚本的顶部:

ini_set('error_reporting', E_ALL); 
    ini_set('display_errors', 1); 

还要检查$ HTML

print_r($html); 

希望这有助于中的print_r。

+0

谢谢,前两个没有输出任何东西,看起来脚本可以正常工作。现在我将更新print_r()方法的输出。 – BigCola 2012-07-12 10:47:56