我正在使用一个非常好的灯箱脚本,但它需要我输出图像大小。我使用的网站是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