我之前从未使用curl,因此我尝试设置一些基本的东西:查询google.com并编写它。这就是我所拥有的:
<?php
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'http://www.google.com');
curl_setopt($ch, CURLOPT_HEADER, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$buffer = curl_exec($curl_handle);
$curl_errno = curl_errno($ch);
$curl_error = curl_error($ch);
curl_close($curl_handle);
if ($curl_errno > 0) {
echo "cURL Error ($curl_errno): $curl_error\n";
} else {
if(empty($buffer)) {
echo "No data received.";
} else {
echo "Data received: $buffer\n";
}
}
?>
然而,它每次都会返回“没有收到数据”。
这是Kubuntu 11.04 x64,PHP版本5.3.5和cURL版本7.21.3。
答案 0 :(得分:2)
您正在混合变量名称$ch
和$curl_handle
。你不能这样做。保持一致($ch
非常标准):
<?php
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'http://www.google.com');
curl_setopt($ch, CURLOPT_HEADER, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$buffer = curl_exec($ch); // Changed variable name here
$curl_errno = curl_errno($ch); // Removed duplicate line here
curl_close($ch); // Changed variable name here
?>
答案 1 :(得分:0)
修复此问题
$buffer = curl_exec($curl_handle);
到
$buffer = curl_exec($ch);
也应该是,
curl_close($ch)
不是$ curl_handle。顺便说一句,关闭卷曲并不是你做什么的必要。但它仍是一种很好的做法。