使用 php 或 javascript / jquery 获取图像大小 - getimagesize 失败



我正在使用一个非常好的灯箱脚本,但它需要我输出图像大小。我使用的网站是php,可以在上传图像时调整图像大小。它不会将图像大小存储在数据库中。

代码需要显示如下。

<a href="http://www.fullurl.com/image.jpg" data-original-url="http://www.fullurl.com/image.jpg" data-original-width="123" data-original-height="456">
    <img src="http://www.fullurl.com/thumbnail-image.jpg" alt="product name" />
</a>

我尝试使用 getimagesize,但它仅适用于系统尚未调整大小的图像。我认为他们缺少一些重要信息,因为已上传但未调整大小的图像工作正常。目前已经上传了大约 1200 张图像,因此无法重做它们。

我目前的方法使用 php,如下所示。

<?php
$image1 = 'http://www.fullurl.com/thumbnail-image.jpg';
list($width, $height) = getimagesize($image1);
 ?>
<a href="http://www.fullurl.com/image.jpg" data-original-url="http://www.fullurl.com/image.jpg" data-original-width="123" data-original-height="456">
    <img src="http://www.fullurl.com/thumbnail-image.jpg" alt="product name" />
</a>

如果我使用以下方法,我会得到 bool(false( 作为输出。

$path1 = 'http://www.fullurl.com/image.jpg';
$vals_arr1 = getimagesize($path1);
echo "<pre>";var_dump($vals_arr1);echo "</pre>";

我不是程序员。我的问题是我如何输出图像信息如下?我很乐意根据需要尝试替代php,jquery/javascript。理想情况下,它需要简单快捷。

<a href="http://www.fullurl.com/image.jpg" data-original-url="http://www.fullurl.com/image.jpg" data-original-width="123" data-original-height="456">

这有效

$path1 = 'https://jpeg.org/images/jpeg-home.jpg';
$vals_arr1 = getimagesize($path1);
echo "<pre>";var_dump($vals_arr1);echo "</pre>";

该错误一定在其他地方。检查网址!它们有效吗?并检查服务器上的allow_url_fopen是否设置为true

否则,这会有所帮助:https://stackoverflow.com/a/25231517/4916265

正如 PHP 文档网站上的 james dot 所指出的,getimagesize 将在检查请求的信息之前下载整个图像。这在远程访问的大型图像上非常慢。由于宽度/高度位于文件的前几个字节中,因此无需下载整个文件。他编写了一个函数,通过流式传输字节来获取 JPEG 的大小,直到找到正确的数据来报告宽度和高度。

他编写它的方式将允许远程图像。

代码可以在这里找到:http://php.net/manual/en/function.getimagesize.php#88793

最新更新