使用curl with simplehtmldom

时间:2011-04-13 17:45:20

标签: php

最近我们的托管禁用了allow_url_fopen,似乎simplehtmldom需要它打开我在这个站点中看到了一个带有allow_url_fopen的工作单元simplehtmldom.sourceforge.net ... aq.htm#hosting,“使用curl获取页面,然后调用“str_get_dom”创建DOM对象“。但仍然没有运气。你能告诉我,如果我做得好还是我错过了什么?

<?php 
$curl = curl_init();  
curl_setopt($curl, CURLOPT_URL, 'www.weather.bm/');   
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);   
curl_setopt($curl, CURLOPT_CONNECTTIMEOUT, 10);   
$str = curl_exec($curl);   
curl_close($curl);   
$html= str_get_html($str);  
?> 
<?php  
$element = $html->find("div");  
$element[66]->class = "mwraping66"; 
foreach($html->find('.mwraping66 img') as $e) 

$doc = phpQuery::newDocumentHTML( $e );  $containers = pq('.mwraping66', $doc);    
foreach ( $containers as $container ) {     $div = pq('img', $container);       
$div->eq(1)->removeAttr('style')->addClass('thumbnail')->html( pq( 'img', $div->eq(1))-    >removeAttr('height')->removeAttr('width')->removeAttr('alt') );  
}  print $doc;  
?> 
<?php  
$element = $html->find("div");   
$element[31]->class = "mwraping31";  
foreach($html->find('.mwraping31') as $e)  
echo $e->plaintext;   
?>................................. 

与之相比:

<?php 
include('simple_html_dom.php'); 
include ('phpQuery.php');    
// Create DOM from URL 
$html = file_get_html('www.weather.bm/'); 
?> 
<?php  
$element = $html->find("div");  
$element[66]->class = "mwraping66"; 
foreach($html->find('.mwraping66 img') as $e).....

感谢您的帮助

1 个答案:

答案 0 :(得分:1)

我知道现在回答这个问题为时已晚,但我在这个论坛中找到了类似的问题和答案..这是Using simple html dom的链接..我不确定这是否会回答你的问题,因为我也是dom .try的新手,使用这个修改过的simple_html_dom.php文件http://webarto.com/82/php-simple-html-dom-curl它使用curl而不是file_get_content;这个文件对我有用,它的用法也和原来的simple_html_dom.php

一样