我正在使用以下代码快速验证链接是否为图片...
if (getimagesize($imageLink)) {
} else {
echo "notImage";
exit();
}
它几乎适用于所有情况(例如,如果浏览器返回图像,那么getimagesize将返回一些内容),但我发现了一些不起作用的情况 - 例如对于这个链接...
这一般适用于路透社网站,我确信其他几个,但我真的很难理解为什么会有这个问题,因为浏览器设法返回图像。我原本以为getimagesize需要明确声明文件的路径(例如以.jpg,.png等结尾),但是这样的链接再次正常工作......
非常感谢任何有任何想法的人的想法为什么getimagesize在第一个例子中没有返回图像但在第二个例子中也是如此 - 并且关于如何调整代码来解释路透社示例的任何建议也会很棒!
答案 0 :(得分:4)
使用它
<?php
list($width, $height) = getimagesize("http://s4.reutersmedia.net/resources/r/?m=02&d=20160330&t=2&i=1128905435&w=&fh=545px&fw=&ll=&pl=&sq=&r=LYNXNPEC2T0YW");
$arr = array('h' => $height, 'w' => $width );
print_r($arr); //output - Array ( [h] => 545 [w] => 968 )
?>
答案 1 :(得分:2)
使用
list($width, $height) = getimagesize('path_to_image');
请确保:
还尝试使用$_SERVER["DOCUMENT_ROOT"]
前缀路径,这有时在您无法读取文件时会有所帮助。