[英]cURL PHP not working if CURLOPT_RETURNTRANSFER set true
我尝试通过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);
to curl_setopt($ch, CURLOPT_RETURNTRANSFER, false);
该网站将打印在屏幕上。 问题是,我需要变量中的内容以进行进一步的操作。
我在WAMPP本地尝试了我的Hoster。 我也尝试设置一些标题信息但没有成功。 也没有错误。 有什么解决方案吗?
它为我工作。 我认为你没有启用卷曲扩展。
由于您正在使用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
它的工作正常对我..我认为卷曲扩展没有很好启用..你使用xampp ??
Go to http://www.anindya.com/php-5-4-3-and-php-5-3-13-x64-64-bit-for-windows/
并下载与您的php版本相同的curl版本..
这并不直接回答你的问题,但它提供了一个位的一种解决方法:你可以考虑使用ob_start()和相关功能,以捕获你能得到的输出?
当然,上面的想法是解决它的一种黑客方式。 在回到ob_start()之前,我建议仔细检查所有变量名,ini设置等,因为你总是可能会做一些事情,比如不小心试图访问$ daya而不是$ data的内容 - 这正是我在自己的剧本中花了45分钟的那种拼写错误。 修复我的变量名称修复了最初引发我这个问题的错误行为。
希望有助于某人。 干杯!
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.