如何使用 cURL return 'object',而不是字符串或 html?
How to return 'object', not string or html using cURL?
因为我的服务器主机禁止使用
file_get_contents()
里面 simple_html_dom.php,
我换了
file_get_html()
和
function file_get_html_using_CuRL($url) {
if (!function_exists('curl_init')){
die('CURL is not installed!');
}
$ch = curl_init();
curl_setopt($ch, CURLOPT_HEADER, false);
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$output = curl_exec($ch);
curl_close($ch);
return $output;
}
但是下面的代码
$html = file_get_html_using_CuRL($url);
$arvl2_arr = $html->find('div[class="arvl2"]');
returns 错误:
Fatal error: Call to a member function find() on a non-object in
我猜问题是因为 $html 不是对象?
代码在我使用时有效
$html = file_get_html($url);
有什么办法可以解决这个问题吗?
SimpleHTMLDOM 中提供了 str_get_html()
函数,您可以使用它来加载 curl
return 值。
相应地修改它:
function file_get_html_using_CuRL($url) {
if (!function_exists('curl_init')){
die('CURL is not installed!');
}
$ch = curl_init();
curl_setopt($ch, CURLOPT_HEADER, false);
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$output = curl_exec($ch);
$output = str_get_html($output);
curl_close($ch);
return $output;
}
这 return 是一个 SimpleHTMLDOM 对象,您现在可以在其中链接您喜欢的方法,例如 ->find()
等,然后进行必要的逻辑处理。
注意:当然要先加载 SimpleHTMLDOM 库。
因为我的服务器主机禁止使用
file_get_contents()
里面 simple_html_dom.php,
我换了
file_get_html()
和
function file_get_html_using_CuRL($url) {
if (!function_exists('curl_init')){
die('CURL is not installed!');
}
$ch = curl_init();
curl_setopt($ch, CURLOPT_HEADER, false);
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$output = curl_exec($ch);
curl_close($ch);
return $output;
}
但是下面的代码
$html = file_get_html_using_CuRL($url);
$arvl2_arr = $html->find('div[class="arvl2"]');
returns 错误:
Fatal error: Call to a member function find() on a non-object in
我猜问题是因为 $html 不是对象?
代码在我使用时有效
$html = file_get_html($url);
有什么办法可以解决这个问题吗?
SimpleHTMLDOM 中提供了 str_get_html()
函数,您可以使用它来加载 curl
return 值。
相应地修改它:
function file_get_html_using_CuRL($url) {
if (!function_exists('curl_init')){
die('CURL is not installed!');
}
$ch = curl_init();
curl_setopt($ch, CURLOPT_HEADER, false);
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$output = curl_exec($ch);
$output = str_get_html($output);
curl_close($ch);
return $output;
}
这 return 是一个 SimpleHTMLDOM 对象,您现在可以在其中链接您喜欢的方法,例如 ->find()
等,然后进行必要的逻辑处理。
注意:当然要先加载 SimpleHTMLDOM 库。