/** * 网络图片转base64 */ if (!function_exists('interImageToBase64')) { function interImageToBase64($image_file, $full = false) { $options = [ // 缓存类型为File 'type' => 'File', // 缓存有效期为永久有效 'expire' => 0, //缓存前缀 'prefix' => 'poster', // 指定缓存目录 'path' => ROOT_PATH . 'runtime/poster/', ]; cache($options); $key = md5($image_file); $info = cache($key); if ($info) { return $info; } $image_file = str_replace(['\\', 'https'], ['/', 'http'], $image_file); $base64_file = ''; //获取图片的类型 $suffix = getfilesuffix($image_file); if ($suffix != 'unknow') { //将图片进行base64编码 $base64_data = base64_encode(file_get_contents($image_file)); $base64_file = 'data:' . $suffix . ';base64,' . $base64_data; $info = $full ? ['type' => $suffix, 'data' => $base64_file, '_format' => 1] : ['type' => $suffix, 'data' => $base64_data, '_format' => 1]; cache($key, $info); return $info; } return ''; } } /* @desc:获取文件真实后缀 @param name 文件名 @return suffix 文件后缀 */ if (!function_exists('getfilesuffix')) { function getfilesuffix($name) { $file = fopen($name, "rb"); $bin = fread($file, 2); // 只读2字节 fclose($file); $info = @unpack("C2chars", $bin); $code = intval($info['chars1'] . $info['chars2']); $suffix = "unknow"; if ($code == 255216) { $suffix = "jpg"; } elseif ($code == 7173) { $suffix = "gif"; } elseif ($code == 13780) { $suffix = "png"; } elseif ($code == 6677) { $suffix = "bmp"; } elseif ($code == 7798) { $suffix = "exe"; } elseif ($code == 7784) { $suffix = "midi"; } elseif ($code == 8297) { $suffix = "rar"; } elseif ($code == 7368) { $suffix = "mp3"; } elseif ($code == 0) { $suffix = "mp4"; } elseif ($code == 8273) { $suffix = "wav"; } return $suffix; } }