💎一站式轻松地调用各大LLM模型接口,支持GPT4、智谱、星火、月之暗面及文生图 广告
# 文件管理中有用的自定义功能函数 ## 1. 格式化文件大小 >根据文件大小,自动格式化文件大小的`单位` ~~~ function size_format($size, $num=2) { $unit = array("B", "KB", "MB", "GB", "TB", "PB"); $i = 0; while ($size >= 1024) { $size /= 1024; $i++; } return round($size,$num)." ".$unit[$i]; } ~~~ ## 2.图片转换为base64编码 >[success]将图片转换成base64编码,是非常有用的。 ### 可能用到的函数 #### 1. base64_encode >[info]使用 MIME base64 对数据进行编码 >使用 base64 对 data 进行编码。 设计此种编码是为了使二进制数据可以通过非纯 8-bit 的传输层传输,例如电子邮件的主体。 Base64-encoded 数据要比原始数据多占用 33% 左右的空间。 #### 2. getimagesize >[info]取得图像大小 >返回一个具有四个单元的数组。索引 0 包含图像宽度的像素值,索引 1 包含图像高度的像素值。索引 2 是图像类型的标记:1 = GIF,2 = JPG,3 = PNG,4 = SWF,5 = PSD,6 = BMP,7 = TIFF(intel byte order),8 = TIFF(motorola byte order),9 = JPC,10 = JP2,11 = JPX,12 = JB2,13 = SWC,14 = IFF,15 = WBMP,16 = XBM。这些标记与 PHP 4.3.0 新加的 IMAGETYPE 常量对应。索引 3 是文本字符串,内容为“height="yyy" width="xxx"”,可直接用于 IMG 标记。 > ### 3. chunk_split >[info]将字符串分割成小块 >使用此函数将字符串分割成小块非常有用。例如将 base64_encode() 的输出转换成符合 RFC 2045 语义的字符串。它会在每 chunklen 个字符后边插入 end。 >返回分割后的字符。 > ### 3. base64编码图像的显示 ~~~ <img src="data:image/png;base64,图片数据"> ~~~ ### 最终自定义函数 ~~~ function base64EncodeImage ($image_file) { $base64_image = ''; $image_info = getimagesize($image_file); $image_data = fread(fopen($image_file, 'r'), filesize($image_file)); $base64_image = 'data:' . $image_info['mime'] . ';base64,' . chunk_split(base64_encode($image_data)); return $base64_image; } ~~~