我在用PHP curl功能 https://php.net/manual/en/ref.curl.php将数据从我的本地计算机发布到网络服务器。我的代码如下:
$c = curl_init();
curl_setopt($c, CURLOPT_URL, $url);
curl_setopt($c, CURLOPT_RETURNTRANSFER, true);
curl_setopt($c, CURLOPT_POST, true);
curl_setopt($c, CURLOPT_POSTFIELDS, $data);
$result = curl_exec($c);
if (curl_exec($c) === false) {
echo "ok";
} else {
echo "error";
}
curl_close($c);
不幸的是,我无法捕获任何错误,例如 404、500 或网络故障。那么我如何知道数据没有发布到远程或从远程检索?
您可以使用curl_error()
函数来检测是否存在错误。例如:
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $your_url);
curl_setopt($ch, CURLOPT_FAILONERROR, true); // Required for HTTP error codes to be reported via our call to curl_error($ch)
//...
curl_exec($ch);
if (curl_errno($ch)) {
$error_msg = curl_error($ch);
}
curl_close($ch);
if (isset($error_msg)) {
// TODO - Handle cURL error accordingly
}
请参阅此处 libcurl 错误代码的描述 http://curl.haxx.se/libcurl/c/libcurl-errors.html
请参阅此处 PHP curl_errno() 函数的描述 https://www.php.net/manual/en/function.curl-errno.php
请参阅此处 PHP curl_error() 函数的描述 https://www.php.net/manual/en/function.curl-error.php
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)