/**(V3.8 新增)(V6.9 更新) * 获取远程图片并把它保存到本地, 确定您有把文件写入本地服务器的权限 * @param string $content 文章内容 * @param string $targeturl 可选参数,对方网站的网址,防止对方网站的图片使用"/upload/1.jpg"这样的情况 * @return string $content 处理后的内容 */ function grab_image($content, $targeturl = ''){ preg_match_all("/(src)=([\"|']?)([^ \"'>]+\.(gif|jpg|jpeg|bmp|png|webp))\\2/i", $content, $img_array); $img_array = isset($img_array[3]) ? array_unique($img_array[3]) : array(); if($img_array) { $path = C('upload_file').'/'.date('Ym/d'); $urlpath = SITE_PATH.$path; $imgpath = YZMPHP_PATH.$path; if(!is_dir($imgpath)) @mkdir($imgpath, 0777, true); } foreach($img_array as $value){ $val = $value; if(strpos($value, 'http') === false){ if(!$targeturl) continue; $value = $targeturl.$value; } if(strpos($value, '?')){ $value = explode('?', $value); $value = $value[0]; } if(substr($value, 0, 4) != 'http'){ continue; } $ext = fileext($value); if(!is_img($ext)) continue; $imgname = date('YmdHis').rand(100,999).'.'.$ext; $filename = $imgpath.'/'.$imgname; $urlname = $urlpath.'/'.$imgname; ob_start(); @readfile($value); $data = ob_get_contents(); ob_end_clean(); $data && file_put_contents($filename, $data); if(is_file($filename)){ $content = str_replace($val, $urlname, $content); } } return $content; }
grab_image
有问题可以加入织梦技术QQ群一起交流学习
本站vip会员 请加入 VIP②群 PS:加入时备注用户名或昵称
普通注册会员或访客 请加入技术交流②群
作者:54818模板网 关注:941 时间:2023-05-16 16:49:48
相关网站教程: