我尝试通过cURL for PHP提取网站的HTML。通常它工作正常,但有一些网站的响应是空的。例如,如果我为URL alditalk.de执行以下脚本:
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'http://www.alditalk.de/');
curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.1) Gecko/20061204 Firefox/4");
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 30);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HEADER, false);
$data = curl_exec($ch);
curl_close($ch);
在这种情况下,变量$data
为空。奇怪的是,如果我将curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
更改为curl_setopt($ch, CURLOPT_RETURNTRANSFER, false);
,网站将打印在屏幕上。问题是,我需要变量中的内容以进行进一步的操作。
我在WAMPP本地尝试了我的Hoster。我也尝试设置一些标题信息但没有成功。也没有错误。有没有解决方案?
答案 0 :(得分:0)
它为我工作。我认为你没有启用卷曲扩展。
由于您正在使用XAMPP,请取消注释该行
;extension=php_curl.dll
在xampp\apache\bin\php.ini
中,然后重新启动Apache服务。
注意:在较新的XAMPP版本中,PHP已移至root xampp文件夹xampp\php\php.ini
。
WAMP SERVER
步骤如下:
WAMP\bin\php\(your version of php)\
php.ini
extension=php_curl.dll
WAMP\bin\Apache\(your version of apache)\bin\
php.ini
extension=php_curl.dll
答案 1 :(得分:0)
它的工作正常对我..我认为卷曲扩展没有很好启用..你使用xampp ??
Go to http://www.anindya.com/php-5-4-3-and-php-5-3-13-x64-64-bit-for-windows/
并下载与php版本相同的curl版本。
答案 2 :(得分:0)
这并没有直接回答您的问题,但它提供了一些解决方法:您是否可以考虑使用ob_start()和相关函数来捕获 能够获得的输出?
当然,上面的想法是解决它的一种黑客方式。在回到ob_start()之前,我建议仔细检查所有变量名称,ini设置等,因为你总是可以做一些事情,比如意外地尝试访问$ daya的内容而不是$ data - 这正是我在自己的剧本中花了45分钟的错字。修复我的变量名称修复了最初引发我这个问题的错误行为。
希望能有所帮助。干杯!