获取演出详情数据的图片 url 根据要求组合后重复替换详情里的对方 url
问题阐述
做电商平台的是否经常会拉取其他公司的演出,但是演出的详情里面会存有大量的图片url,拉取过来后想换成自己公司图片服务器上url
解决方式
// $detail:详情内容 字符串
preg_match_all('/<\s*img\s+[^>]*?src\s*=\s*(\'|\")(.*?)\\1[^>]*?\/?\s*>/i', $detail, $match);
// 提取详情里面的url数据,是个数据文件,然后进行上传到我们的服务器
$new = [];
foreach($match[2] as $v){
$uniqid = uniqid();
$suf = pathinfo($url, PATHINFO_EXTENSION);
$image = "./public/Mygladmin/img/{$uniqid}.". $suf;
ob_clean();
ob_start();
readfile($url); //读取图片
$img = ob_get_contents(); //得到缓冲区中保存的图片
ob_end_clean();
$file = fopen($image, 'w');
fwrite($file, $img);
fclose($file);
// 上传到服务器
$fileInfo = fastdfs_storage_upload_by_filename($image, $suf);
fastdfs_disconnect_server();
fastdfs_tracker_close_all_connections();
// 删除本地图片
unlink($image);
$new[] = '/' . $fileInfo['group_name'] . "/" . $fileInfo['filename'];
}
// 这个php自带函数可以根据前面2个数组参数里面的对应关系替换详情里面的数据
$detail = str_replace($match[2], $new, $detail);
本作品采用《CC 协议》,转载必须注明作者和本文链接
推荐文章: