【问题标题】:php curl returning empty arrayphp curl返回空数组
【发布时间】:2015-12-30 06:33:15
【问题描述】:

我正在尝试使用 php curl 获取一些网页内容。

我有这个 php 代码:

$target_url="http://me.dealintech.com/partho.php";
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $target_url);
curl_setopt($ch, CURLOPT_HEADER, 0);
$file_contents=curl_exec($ch);
include('simple_html_dom.php');
$html = str_get_html($file_contents); 
$elem = $html->find('div[id=basic_info_content]');
echo "var_dump output: ";
var_dump($elem);

我得到的输出是:

[这里我得到了我定位的整个网页内容]

var_dump 输出:array(0) { }

所以我得到了所有内容但不是特定的 div 内容。我如何使用 div id 或/和类来获得它

【问题讨论】:

  • 添加有问题的 $html 值
  • 请添加到@AmitRajput 评论,echo $html;。你正在看的那个 div 有显示吗?
  • 是的。 echo $html; 的输出是非常大的字符串。相反,您会看到 dealintech.com/a.php,它显示了您要求的输出。

标签: php curl


【解决方案1】:

您需要使用CURLOPT_RETURNTRANSFER 选项使curl_exec 返回URL 的内容而不是输出它。

curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

如果您没有使用任何其他 cURL 选项,则可以改用更简单的 file_get_contents

$file_contents = file_get_contents($target_url);

Simple HTML DOM Parser 包含一个自动为您执行此操作的功能:

$html = file_get_html($target_url);

【讨论】:

  • 这几乎回答了我的问题。但我正在寻找特定的 div 内容。你能说,怎么样?
  • 在我的目标页面中有一个 div id=basic_info_content。我想得到那个div的文本。 (我在我的问题中说过)。请给个思路
  • 这部分代码应该可以正常工作。唯一的问题是您获取 HTML 的方式。
  • 也可以写成$elem = $html->find("#basic_info_content")
  • $elem = $html->find("#basic_info_content"); print_r($elem); 的输出非常大。你可以在这里看到输出dealintech.com/a.php
猜你喜欢
  • 2021-08-11
  • 2013-08-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-01-10
  • 2012-09-06
  • 2014-03-27
  • 1970-01-01
相关资源
最近更新 更多