php 图片base64编码和图片base64解码

/**
     * 图片base64编码
     * @param string $img
     * @param bool $imgHtmlCode
     * @return string
     */
    function imgBase64Encode($img = '', $imgHtmlCode = true)
    {
        //如果是本地文件
        if(strpos($img,'http') === false && !file_exists($img)){
            return $img;
        }
        //获取文件内容
        $file_content = file_get_contents($img);
        if($file_content === false){
            return $img;
        }
        $imageInfo = getimagesize($img);
        $prefiex = '';
        if($imgHtmlCode){
            $prefiex = 'data:' . $imageInfo['mime'] . ';base64,';
        }
        $base64 = $prefiex.chunk_split(base64_encode($file_content));
        return $base64;
    }
/**
     * 图片base64解码
     * @param string $base64_image_content 图片文件流
     * @param bool $save_img    是否保存图片
     * @param string $path  文件保存路径
     * @return bool|string
     */
    function imgBase64Decode($base64_image_content = '',$save_img = false,$path=''){
        if(empty($base64_image_content)){
            return false;
        }
        //匹配出图片的信息
        $match = preg_match('/^(data:\s*image\/(\w+);base64,)/', $base64_image_content, $result);

        if(!$match){
            return false;
        }

        //解码图片内容(方法一)
        /*$base64_image = preg_split("/(,|;)/",$base64_image_content);
        $file_content = base64_decode($base64_image[2]);
        $file_type = substr(strrchr($base64_image[0],'/'),1);*/

        //解码图片内容(方法二)
        $base64_image = str_replace($result[1], '', $base64_image_content);
        $file_content = base64_decode($base64_image);
        $file_type = $result[2];

        //如果不保存文件,直接返回图片内容
        if(!$save_img){
            return $file_content;
        }

        //如果没指定目录,则保存在当前目录下
        if(empty($path)){
            $path = __DIR__;
        }
        $file_path = $path."/".date('Ymd',time())."/";
        if(!is_dir($file_path)){
            //检查是否有该文件夹,如果没有就创建
            mkdir($file_path,0777,true);
        }
        $file_name = time().".{$file_type}";
        $new_file = $file_path.$file_name;
        if(file_exists($new_file)){
            //有同名文件删除
            @unlink($new_file);
        }
        if (file_put_contents($new_file, $file_content)){
            return $new_file;
        }
        return false;
    }

 

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值