我找到了一种很好的方法来检查页面是否真的存在:
$headers=@get_headers($imageurl);
if(strpos($headers[0],'200')===false){
echo "not valid";
exit;
}
但我需要做的是检查该页面上是否只有图像。 例如,当您尝试以下链接时: www.google.com/image.jpg 它将返回200,因为谷歌有自己的错误页面 - 但是,应该可以不仅找出该页面上没有图像,而且还可以找到图像不是该页面上的唯一内容,即使有其他内容(例如:http://www.kapstadt-entdecken.de/wp-content/gallery/robben-island/1robben-island.jpg)。
我如何才能实现这一目标?
非常感谢!
丹尼斯
答案 0 :(得分:1)
您可能希望在获取标头时使用HEAD请求(默认情况下不会这样做):
stream_context_set_default(array(
'http' => array(
'method' => 'HEAD'
)
));
其次,您可以将第二个参数传递给get_headers
以便为您解析:
$headers = get_headers($imageurl, 1);
然后,您可以按照正常情况检查其余部分:
if (strpos($headers[0], '200') === false) {
echo "not valid";
exit;
}
if (isset($headers['Content-Type']) && 0 === strncmp($headers['Content-Type'], 'image/', 6)) {
echo "valid image";
} else {
echo "probably not an image";
}
答案 1 :(得分:0)
$headers = @get_headers($imageurl);
$is_image = false;
foreach ($headers as $header) {
if (strpos($header, 'Content-Type: image/') === 0) {
$is_image = true;
break;
}
}
答案 2 :(得分:0)
还有get_headers ......其中一个将是
image/png
image/jpeg
image/gif
所以
$isImage = false;
foreach($headers as $header){
if(strpos($header,'image/')==true){
$isImage = true;
}
}