gpt4 book ai didi

php - 如何将 CURL 和 PHP Simple HTML DOM Parser 与对象一起使用

转载 作者:行者123 更新时间:2023-12-05 00:20:32 30 4
gpt4 key购买 nike

使用 CURL 从网站获取内容。在对象中获得响应。如何将该对象转换为 PHP Simple HTML DOM Parser

function get_data($url) 
{
$ch = curl_init();
$timeout = 30;
curl_setopt($ch,CURLOPT_URL,$url);
curl_setopt($ch,CURLOPT_RETURNTRANSFER,false);
curl_setopt($ch,CURLOPT_CONNECTTIMEOUT,$timeout);
curl_setopt($ch,CURLOPT_POST,false);
curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (X11; Ubuntu; Linux i686; rv:10.0) Gecko/20100101 Firefox/10.0");
//curl_exec($ch);
$dom = new simple_html_dom(curl_exec($ch));
print_r( $dom );
curl_close($ch);
return $data;
}
$url = 'http://www.example.com';
$data = get_data($url);

?>

结果

simple_html_dom 对象 ( [root] => simple_html_dom_node 对象 ( [nodetype] => 5 [tag] => root [attr] => Array ( ) [children] => Array ( ) [nodes] => Array ( [0] = > simple_html_dom_node 对象 ( [nodetype] => 3 [tag] => text [attr] => Array ( ) [children] => Array ( ) [nodes] => Array ( ) [parent] => simple_html_dom_node Object *RECURSION* [_] => 数组 ( [4] => 1 ) [tag_start] => 0 [dom:private] => simple_html_dom 对象 *RECURSION* ) ) [父] => [_] => 数组 ( [0] = > -1 [1] => 2 ) [tag_start] => 0 [dom:private] => simple_html_dom 对象 *RECURSION* ) [nodes] => 数组 ( [0] => simple_html_dom_node 对象 ( [nodetype] => 5 [tag] => root [attr] => Array () [children] => Array () [nodes] => Array ([0] => simple_html_dom_node Object ([nodetype] => 3 [tag] => text [ attr] => Array ( ) [children] => Array ( ) [nodes] => Array ( ) [parent] => simple_html_dom_node 对象 *RECURSION* [_] => Array ( [4] => 1 ) [tag_start] => 0 [dom:private] => simple_html_dom 对象 *RECURSION* ) ) [父] => [_] => 数组 ( [0] => -1 [1] => 2 ) [tag_start] => 0 [dom:private] => simple_html_dom 对象 *RECURSION* ) [1] => simple_html_dom_node 对象 ( [nodetype] => 3 [tag] => text [attr] => Array ( ) [children] => Array ( ) [nodes] => Array ( ) [parent] => simple_html_dom_node Object ( [nodetype] => 5 [tag] => root [attr] => Array () [children] => Array () [nodes] => Array ([0] => simple_html_dom_node Object *RECURSION*) [parent] => [_] =>数组 ( [0] => -1 [1] => 2 ) [tag_start] => 0 [dom:private] => simple_html_dom 对象 *RECURSION* ) [_] => 数组 ( [4] => 1 ) [ tag_start] => 0 [dom:private] => simple_html_dom Object *RECURSION* ) ) [callback] => [lowercase] => 1 [original_size] => 1 [size] => 1 [pos:protected] => 1 [char:protected] => [cursor:protected] => 2 [parent:protected] => simple_html_dom_node Object ([nodetype] => 5 [tag] => root [attr] => Array () [children] => Array ( ) [nodes] => Array ( [0] => simple_html_dom_node Object ( [nodetype] => 3 [tag] => text [attr] => Arra y ( ) [children] => Array ( ) [nodes] => Array ( ) [parent] => simple_html_dom_node 对象 *RECURSION* [_] => Array ( [4] => 1 ) [tag_start] => 0 [ dom:private] => simple_html_dom Object *RECURSION* ) ) [parent] => [_] => Array ( [0] => -1 [1] => 2 ) [tag_start] => 0 [dom:private] => simple_html_dom 对象 *RECURSION* ) [token_blank:protected] => [token_equal:protected] => =/> [token_slash:protected] =>/> [token_attr:protected] =>> [_charset] => UTF-8 [_target_charset] => UTF-8 [default_br_text:protected] => [default_span_text] => [self_closing_tags:protected] => 数组 ([img] => 1 [br] => 1 [input] => 1 [meta] => 1 [链接] => 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] => 数组 ( [th] => 1 ) [td] => 数组 ( [td] => 1 ) [li] => 数组 ( [li] => 1 ) [dt] => 数组 ( [dt] => 1 [ dd] => 1 ) [dd] => 数组 ( [dd] => 1 [dt] => 1 ) [dl] => 数组 ( [dd] => 1 [dt] => 1 ) [p] = > 数组 ( [p] => 1 ) [nobr] => 数组 ( [nobr] => 1 ) [b] => 数组 ( [b] => 1 ) [option] => 数组 ( [option] => 1 ) ) [doc:protected] => 1 [noise:protected] => Array ())

最佳答案

您没有正确创建 DOM,您必须这样做:

// Create a DOM object
$dom = new simple_html_dom();
// Load HTML from a string
$dom->load(curl_exec($ch))

print_r( $dom );

查看 Manual更多细节...

编辑

好像是cURL设置问题,请引用 the documentation正确配置它...

这是我通常用来下载一些页面的功能,请随时根据您的需要进行调整:
function dlPage($href) {

$curl = curl_init();
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($curl, CURLOPT_HEADER, false);
curl_setopt($curl, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($curl, CURLOPT_URL, $href);
curl_setopt($curl, CURLOPT_REFERER, $href);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt($curl, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US) AppleWebKit/533.4 (KHTML, like Gecko) Chrome/5.0.375.125 Safari/533.4");
$str = curl_exec($curl);
curl_close($curl);

// Create a DOM object
$dom = new simple_html_dom();
// Load HTML from a string
$dom->load($str);

return $dom;
}

$url = 'http://www.example.com/';
$data = dlPage($url);
print_r($data);

关于php - 如何将 CURL 和 PHP Simple HTML DOM Parser 与对象一起使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21185539/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com