【发布时间】:2013-01-15 18:38:17
【问题描述】:
嗨,我有一个网站,我在其中使用 php GD 库制作图像,我想知道如何获得这些随机大小图像的大小(以 KB 或 MB 为单位)。请任何人知道它。
【问题讨论】:
嗨,我有一个网站,我在其中使用 php GD 库制作图像,我想知道如何获得这些随机大小图像的大小(以 KB 或 MB 为单位)。请任何人知道它。
【问题讨论】:
您可以通过以下方式获取图像的文件大小:
$image_size_in_bytes = filesize($path_to_image);
要使用 URL 获取图像的文件大小,请使用以下代码:(注意您必须安装 cURL 扩展)
<?php
// URL to file (link)
$file = 'http://example.com/file.zip';
$ch = curl_init($file);
curl_setopt($ch, CURLOPT_NOBODY, true);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HEADER, true);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
$data = curl_exec($ch);
curl_close($ch);
if (preg_match('/Content-Length: (\d+)/', $data, $matches)) {
// Contains file size in bytes
$contentLength = (int)$matches[1];
}
?>
阅读更多here。
【讨论】:
PHP 没有办法准确地获取有关变量大小的信息。解决此问题的一种方法是在生成图像以用作近似值之前和之后使用checking memory usage。
另一种方法是构建图像,然后设置 JPEG/GIF/PNG/等。数据到变量。使用strlen 以字节为单位获取该字符串的大小,这将是您的图像大小。我不确定如何在不设置输出缓冲区、回显 GD 变量、然后关闭并捕获缓冲区的情况下从 GD 获取数据字符串;我知道的唯一其他输出是将其写入磁盘。这让我们...
将图像文件保存到临时目录,然后使用filesize 函数获取文件大小。这将是最准确的,因为当您写入图像时,您还将设置要写入的图像文件的类型,这会影响大小。它还将涉及服务器上更多的磁盘活动。
【讨论】: