微信图片地址转换(简单图床程序)

在:微信文章归档系统开发过程中,直接<img src="///">引用微信公众号里面的图片链接(打开文章后,图片上右键 -> 新标签页打开),会出现以下情况:

解决方案:图片存到本地使用本地 URL(图片格式webp很强大,也是微信用的,动图静图二合一的格式)

  1. 用户添加或修改首页图片操作的时候:
  2. 传到后台的图片 URL 先下载图片写入到本地 (外部可访问)
  3. 根据时间戳生成图片名称
  4. 返回本地图片的 URL

相当于一个简易的图床功能,源码如下:

/**
    * 简单图床程序,解决微信图片防止盗链问题,要设置www-data对img文件夹的写入权限
    * @desc 输入微信图片URL,存入本地,返回本地URL,涉及文件写入操作,不要放在common
    * @param $url
    * @return string
    */
private function simplePictureBed($url){
    $date = date('Ymd-His', $_SERVER['REQUEST_TIME']);
    $file_name = $date.'.webp';//拼接图片名称
    
    $img = file_get_contents($url);
    file_put_contents('/webdata/article/public/img/'.$file_name, $img);
    return 'http://'.$_SERVER['HTTP_HOST'].'/article/public/img/'.$file_name;
}

public function update($id, $newData) {
    $newData['img'] = $this->simplePictureBed($newData['img']);//转换图片地址
    
    $model = new ModelArticle();
    return $model->update($id, $newData);
}

本文链接:https://ariser.cn/index.php/archives/19/
本站文章采用 知识共享署名4.0 国际许可协议进行许可,请在转载时注明出处及本声明!