我正在尝试检查服务器上是否存在图像文件。我正在使用其他服务器获取图像路径。
请查看我尝试过的以下代码,
$urlCheck = getimagesize($resultUF['destination']);
if (!is_array($urlCheck)) {
$resultUF['destination'] = NULL;
}
但是,它显示在警告
之下Warning: getimagesize(http://www.example.com/example.jpg) [function.getimagesize]: failed to open stream: HTTP request failed! HTTP/1.1 404 Not Found in
有没有办法这样做?
由于
答案 0 :(得分:3)
$url = 'http://www.example.com/example.jpg)';
print_r(get_headers($url));
它会给出一个数组。现在您可以检查响应以查看图像是否存在
答案 1 :(得分:1)
您需要检查文件是否在服务器上定期存在。您应该使用:
is_file。例如
$ URL = “http://www.example.com/example.jpg”;
if(is_file($url))
{
echo "file exists on server";
}
else
{
echo "file not exists on server ";
}
答案 2 :(得分:0)
问题是图片可能不存在,或者您没有直接权限来访问图片,否则您必须指向无效的位置到图片。
答案 3 :(得分:0)
您可以使用file_get_contents
。这将导致php在返回false
的同时发出警告。您可能需要处理此类警告显示以确保用户界面不会与其混淆。
if (file_get_contents($url) === false) {
//image not foud
}
答案 4 :(得分:0)
使用fopen功能
if (@fopen($resultUF['destination'], "r")) {
echo "File Exist";
} else {
echo "File Not exist";
}
答案 5 :(得分:0)
最快&有效破解或未找到图像链接的解决方案
我建议你不要使用getimagesize(),因为它将首先下载图像然后它会检查图像大小+如果这不会成像然后它会抛出异常所以使用下面的代码
if(checkRemoteFile($imgurl))
{
//found url, its mean
echo "this is image";
}
function checkRemoteFile($url)
{
$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);
if(curl_exec($ch)!==FALSE)
{
return true;
}
else
{
return false;
}
}
注意:强> 此当前代码可帮助您识别损坏或未找到的网址图像,这无法帮助您识别图像类型或标题