php base64_encode 字符串的大小 - 文件

发布于 2024-10-23 19:19:06 字数 358 浏览 4 评论 0原文

我想知道如何知道 base64_encoded 字符串的文件大小?例如:

$data = 'iVBORw0KGgoAAAANSUhEUgAAABwAAAASCAMAAAB/2U7WAAAABl'
       . 'BMVEUAAAD///+l2Z/dAAAASUlEQVR4XqWQUQoAIAxC2/0vXZDr'
       . 'EX4IJTRkb7lobNUStXsB0jIXIAMSsQnWlsV+wULF4Avk9fLq2r'
       . '8a5HSE35Q3eO2XP1A1wQkZSgETvDtKdQAAAABJRU5ErkJggg==';
$data = base64_decode($data);

谢谢

I'm wondering how could I know the file size of a base64_encoded string? For instance:

$data = 'iVBORw0KGgoAAAANSUhEUgAAABwAAAASCAMAAAB/2U7WAAAABl'
       . 'BMVEUAAAD///+l2Z/dAAAASUlEQVR4XqWQUQoAIAxC2/0vXZDr'
       . 'EX4IJTRkb7lobNUStXsB0jIXIAMSsQnWlsV+wULF4Avk9fLq2r'
       . '8a5HSE35Q3eO2XP1A1wQkZSgETvDtKdQAAAABJRU5ErkJggg==';
$data = base64_decode($data);

Thanks

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

心是晴朗的。 2024-10-30 19:19:06
strlen(base64_decode($encoded_data));

根据粗略的经验,base64 编码会使原始数据的大小增加约 33%

strlen(base64_decode($encoded_data));

And as a rough rule of thumb, base64 encoding increases the original data in size by about 33%

慢慢从新开始 2024-10-30 19:19:06

如果您想在不解码的情况下知道大小,我相信以下方法有效:

$size = (int) (strlen(rtrim($data, '=')) * 3 / 4);

或者:

$size = (strlen($data) * 3 / 4) - substr_count(substr($data, -2), '=');

否则,只需按照建议对解码后的数据使用 strlen() 即可。

If you want to know the size without decoding, I believe the following works:

$size = (int) (strlen(rtrim($data, '=')) * 3 / 4);

Or:

$size = (strlen($data) * 3 / 4) - substr_count(substr($data, -2), '=');

Otherwise, just use strlen() on the decoded data as Marc as suggested.

爱情眠于流年 2024-10-30 19:19:06

试试这个,它也会给你以字节、KB 和 MB 为单位的大小。

public function getBase64ImageSize($base64Image){ //return memory size in B, KB, MB
    try{
        $size_in_bytes = (int) (strlen(rtrim($base64Image, '=')) * 3 / 4);
        $size_in_kb    = $size_in_bytes / 1024;
        $size_in_mb    = $size_in_kb / 1024;

        return $size_in_mb;
    }
    catch(Exception $e){
        return $e;
    }
}

Try this one, gives you size in Bytes, KB and MB too..

public function getBase64ImageSize($base64Image){ //return memory size in B, KB, MB
    try{
        $size_in_bytes = (int) (strlen(rtrim($base64Image, '=')) * 3 / 4);
        $size_in_kb    = $size_in_bytes / 1024;
        $size_in_mb    = $size_in_kb / 1024;

        return $size_in_mb;
    }
    catch(Exception $e){
        return $e;
    }
}
宁愿没拥抱 2024-10-30 19:19:06

使用以下代码:

function getFileSizeInKb($base64string){
    $bytes = strlen(base64_decode($base64string));
    $roughsize = (((int)$bytes) / 1024.0)* 0.67;
    return round($roughsize,2);
}

Use the following code :

function getFileSizeInKb($base64string){
    $bytes = strlen(base64_decode($base64string));
    $roughsize = (((int)$bytes) / 1024.0)* 0.67;
    return round($roughsize,2);
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文