curl_exec() 总是返回 false [英] curl_exec() always returns false
问题描述
我写了这段简单的代码:
I have written this simple piece of code :
$ch = curl_init();
//Set options
curl_setopt($ch, CURLOPT_URL, "http://www.php.net");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$website_content = curl_exec ($ch);
在我的例子中 $website_content
是 false
.任何人都可以建议/建议可能出问题的地方吗?
In my case $website_content
comes as false
.
Can anyone suggest/advice something what could be going wrong?
推荐答案
错误检查和处理是程序员的朋友.检查初始化和执行 cURL 函数的返回值.curl_error()
和 curl_errno()
将包含更多信息,以防万一失败:
Error checking and handling is the programmer's friend. Check the return values of the initializing and executing cURL functions. curl_error()
and curl_errno()
will contain further information in case of failure:
try {
$ch = curl_init();
// Check if initialization had gone wrong*
if ($ch === false) {
throw new Exception('failed to initialize');
}
// Better to explicitly set URL
curl_setopt($ch, CURLOPT_URL, 'http://example.com/');
// That needs to be set; content will spill to STDOUT otherwise
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
// Set more options
curl_setopt(/* ... */);
$content = curl_exec($ch);
// Check the return value of curl_exec(), too
if ($content === false) {
throw new Exception(curl_error($ch), curl_errno($ch));
}
// Check HTTP return code, too; might be something else than 200
$httpReturnCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
/* Process $content here */
} catch(Exception $e) {
trigger_error(sprintf(
'Curl failed with error #%d: %s',
$e->getCode(), $e->getMessage()),
E_USER_ERROR);
} finally {
// Close curl handle unless it failed to initialize
if (is_resource($ch)) {
curl_close($ch);
}
}
* curl_init()
手册 状态:
成功时返回 cURL 句柄,错误时FALSE.
Returns a cURL handle on success, FALSE on errors.
我观察到当您使用其 $url
参数并且无法解析域时,该函数返回 FALSE
.如果参数未使用,函数可能永远不会返回FALSE
.但是,无论如何都要检查它,因为手册没有明确说明什么错误"实际上是.
I've observed the function to return FALSE
when you're using its $url
parameter and the domain could not be resolved. If the parameter is unused, the function might never return FALSE
. Always check it anyways, though, since the manual doesn't clearly state what "errors" actually are.
这篇关于curl_exec() 总是返回 false的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!