我正在使用getimagesize来检查图像是否存在。
图片位于远程网址中,因此我查看了一个链接。
如果图像存在,则响应时间不到2秒。
如果图像不存在,e也没有图像错误的链接,响应时间不到2秒。
问题是当图像不存在并且有链接说(图像未找到)或类似的东西时...... getimagesize一直试图找到图像正好60秒(我用php microtime检查) )。
其他方法也发生了相同的事情,需要60秒的响应...我尝试使用curl,使用file_get_contens,get_headers,imagecreatefromjpeg ....所有这些都需要60秒才能返回false。
知道如何减少时间吗?
答案 0 :(得分:1)
尝试将此功能与CURLOPT_TIMEOUT
:
function checkRemoteFile($url)
{
$timeout = 5; //timeout seconds
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
// don't download content
curl_setopt($ch, CURLOPT_NOBODY, 1);
curl_setopt($ch, CURLOPT_FAILONERROR, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt ($ch, CURLOPT_TIMEOUT, $timeout);
return (curl_exec($ch)!==FALSE);
}
$image = "/img/image.jpg";
if ( checkRemoteFile($image) )
{
$info = getimagesize($image);
print_r($info); //Print image info
list($width, $height, $type, $attr) = $info; //Store image info
}
else
echo "Timeout";
您也可以使用稍有不同的CURLOPT_CONNECTTIMEOUT
。
希望它有所帮助。 :)