首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用PHP版本5.3.29无法获得远程webp文件大小的getimagesize

使用PHP版本5.3.29无法获得远程webp文件大小的getimagesize
EN

Stack Overflow用户
提问于 2016-03-07 11:41:41
回答 2查看 5.8K关注 0票数 1

下面是代码片段-

代码语言:javascript
运行
复制
list($campaign_image_width, $campaign_image_height, $campaign_image_type, $campaign_image_attr)=getimagesize($campaign_image);

其中$campaign_image包含第三方图像的url。

问题

$campaign_image_width空出来要这个网址-

3L8VH2wxJSTiKPr72PeM5uhPPFEsHzzYdxenddpTI150M0TYpljnZisQaROR0=h256-rw

我不确定是getimagesize()的限制,是由于不支持的格式造成的,还是图像的可访问性问题造成的。

注-

-后面的=h256-rw似乎告诉服务器返回一个不同大小的映像。

-我发现如果我尝试使用firefox浏览器打开文件,它不会显示图像,而是要求下载webp文件( google的图像格式)。谷歌铬打开文件,并显示图像,通常。

EN

Stack Overflow用户

回答已采纳

发布于 2016-03-07 12:14:29

由于您的服务器已经在下载文件,所以您最好自己下载(如果问题是它不能正确地为webp完成)。您可以使用GD方法imagecreatefromwebpimagesximagesy轻松地做到这一点。

代码语言:javascript
运行
复制
<?php

$url = 'https://lh3.googleusercontent.com/VRY0O_3L8VH2wxJSTiKPr72PeM5uhPPFEsHzzYdxenddpTI150M0TYpljnZisQaROR0=h256-rw';

$img = imagecreatefromwebp($url);

$width = imagesx($img);
$height = imagesy($img);

var_dump($width, $height);

注意: imagecreatefromwebp()最初是在PHP5.5中引入的,所以请确保安装了GD扩展后的最低版本为5.5。

如果可能的话,您可以将Google自己的webp转换器作为二进制文件安装在服务器上:

https://developers.google.com/speed/webp/docs/compiling#building

在本例中,您运行的是基于Fedora的Amazon,因此使用yum作为包管理器,因此您应该能够运行以下命令:

代码语言:javascript
运行
复制
sudo yum install libwebp;

安装完毕后,可以通过使用safemode和下列执行方法之一确保safe_mode_exec_dir支持二进制文件:

  • exec
  • passthru
  • system
  • popen

一旦你运行了转换到例如。JPG,您可以运行常用的PHP工具来获取图像维数:

代码语言:javascript
运行
复制
$hnd = imagecreatefromjpeg('convertedImage.jpg');

$width = imagesx($hnd);
$height = imagesy($hnd);
票数 4
EN
查看全部 2 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35842807

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档