为啥我不能对这个图像使用 getimagesize PHP? [复制]
Posted
技术标签:
【中文标题】为啥我不能对这个图像使用 getimagesize PHP? [复制]【英文标题】:Why i can not use getimagesize PHP with this image? [duplicate]为什么我不能对这个图像使用 getimagesize PHP? [复制] 【发布时间】:2018-03-12 13:29:18 【问题描述】:为什么我不能对这个图像使用 getimagesize php?
对于这张图片,我可以得到getimagesize PHP,效果很好。
<?PHP
$source = "https://i.pinimg.com/736x/da/7a/19/da7a19a0c3daabe579ecca21d1ae32c3--felt-wool-felting-projects.jpg";
$dimension = getimagesize($source);
$width = $dimension[0];
$height = $dimension[1];
echo $width;
echo "<BR>";
echo $height;
?>
但是对于这张图片为什么我不能getimagesize PHP?
<?PHP
$source = "https://shorebread.com/wp-content/uploads/2016/07/kitty-cat-reaching_138482216-2000x500.jpg";
$dimension = getimagesize($source);
$width = $dimension[0];
$height = $dimension[1];
echo $width;
echo "<BR>";
echo $height;
?>
如何在每张图片上使用 getimagesize PHP?
【问题讨论】:
因为:用户代理阻塞??您是如何调试第二个可用于远程访问的资源的? 这个对我有用:***.com/a/11680906/1403118 【参考方案1】:可能是该网站不允许“hot-linking”或者它阻止了 PHP 的用户代理。
如果您尝试从 URL 获取数据,您将收到 HTTP/1.1 403 Forbidden 响应:
php > $dimension = getimagesize($source);
PHP Warning: getimagesize(https://shorebread.com/wp-content/uploads/2016/07/kitty-cat-reaching_138482216-2000x500.jpg):
failed to open stream: HTTP request failed! HTTP/1.1 403 Forbidden
in php shell code on line 1
如果您先下载图像,然后从磁盘执行相同操作,则可以:
php > $dimension = getimagesize("kitty-cat-reaching_138482216-2000x500.jpg");
php > print_r($dimension);
Array
(
[0] => 2000
[1] => 500
[2] => 2
[3] =>
[bits] => 8
[channels] => 3
[mime] => image/jpeg
)
所以并不是getimagesize
不适用于所有图像。它无法下载图像本身。
【讨论】:
如何从阻止 PHP 用户代理的站点下载图像? 您可以在提出任何请求之前使用ini_set
。见this answer。以上是关于为啥我不能对这个图像使用 getimagesize PHP? [复制]的主要内容,如果未能解决你的问题,请参考以下文章
如何将 getimagesize() 与 $_FILES[''] 一起使用?