PHP 的 getimagesize 未检测到来自 URL 的图像
PHP's getimagesize not detecting image from URL
我正在使用以下代码快速验证 link 是否是图像...
if (getimagesize($imageLink)) {
} else {
echo "notImage";
exit();
}
它几乎适用于所有情况(即,如果浏览器 return 是图像,那么 getimagesize 将 return 某些东西),但我发现在某些情况下它不起作用 -例如为此 link...
这通常适用于路透社网站,我敢肯定还有其他一些网站,但我真的很难理解为什么会出现这个问题,因为浏览器设法 return 图片。我最初认为 getimagesize 需要明确说明的文件路径(例如以 .jpg、.png 等结尾),但又一次像这样的 link 工作正常...
非常感谢任何人对为什么 getimagesize 在第一个示例中没有 return 图像但在第二个示例中有任何想法 - 以及关于如何调整代码以说明的任何建议路透社的例子也很棒!!
照原样使用
<?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 )
?>
使用它
list($width, $height) = getimagesize('path_to_image');
确保:
- 你在那里指定了正确的图片路径
- 图像具有读取权限
- 将图像目录更改为 755
同时尝试在路径前加上 $_SERVER["DOCUMENT_ROOT"]
,这有时会在您无法读取文件时提供帮助。
参考:Get Image Height and Width as integer values?
我正在使用以下代码快速验证 link 是否是图像...
if (getimagesize($imageLink)) {
} else {
echo "notImage";
exit();
}
它几乎适用于所有情况(即,如果浏览器 return 是图像,那么 getimagesize 将 return 某些东西),但我发现在某些情况下它不起作用 -例如为此 link...
这通常适用于路透社网站,我敢肯定还有其他一些网站,但我真的很难理解为什么会出现这个问题,因为浏览器设法 return 图片。我最初认为 getimagesize 需要明确说明的文件路径(例如以 .jpg、.png 等结尾),但又一次像这样的 link 工作正常...
非常感谢任何人对为什么 getimagesize 在第一个示例中没有 return 图像但在第二个示例中有任何想法 - 以及关于如何调整代码以说明的任何建议路透社的例子也很棒!!
照原样使用
<?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 )
?>
使用它
list($width, $height) = getimagesize('path_to_image');
确保:
- 你在那里指定了正确的图片路径
- 图像具有读取权限
- 将图像目录更改为 755
同时尝试在路径前加上 $_SERVER["DOCUMENT_ROOT"]
,这有时会在您无法读取文件时提供帮助。
参考:Get Image Height and Width as integer values?