簡體   English   中英

如何獲取PHP生成圖像的內容大小?

[英]How to get the Content Size of PHP Generated Image?

嗨,我有一個網站,其中使用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];
    }
?>

在這里閱讀更多。

PHP無法准確地獲取有關變量大小的信息。 解決此問題的一種方法是,在生成圖像用作近似值之前和之后檢查內存使用情況

另一種方法是構建圖像,然后設置JPEG / GIF / PNG / etc。 數據到變量。 使用strlen獲取該字符串的大小(以字節為單位),這將是您的圖像大小。 我不確定如何在不設置輸出緩沖區,回顯GD變量,然后關閉並捕獲緩沖區的情況下,從GD獲取數據字符串。 我知道的唯一其他輸出是將其寫入磁盤。 這帶我們去...

將圖像文件保存到臨時目錄,然后使用filesize函數獲取文件大小。 這將是最准確的,因為在寫入圖像時,您還將設置要寫入的圖像文件的類型,這會影響大小。 它還將涉及服務器上更多的磁盤活動。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM