//富文本图片Begin if($data["content"]) { preg_match_all('/<img(.*)src="([^"]+)"[^>]+>/isU',$data["content"],$matches); $img = ""; if(!empty($matches)) { //注意,上面的正则表达式说明src的值是放在数组的第三个中 $img = $matches[2]; }else { $img = ""; } if (!empty($img)) { //$img_url = $request->domain(); $img_url = "http://".$_SERVER['SERVER_NAME']; $patterns= array(); $replacements = array(); foreach($img as $imgItem) { if(strpos($imgItem,"http") === false) { $final_imgUrl = $img_url.$imgItem; $replacements[] = $final_imgUrl; $img_new = "/".preg_replace("/\//i","\/",$imgItem)."/"; $patterns[] = $img_new; } } //让数组按照key来排序 ksort($patterns); ksort($replacements); //替换内容 $data["content"] = preg_replace($patterns, $replacements, $data["content"]); } } //2017-09-29-End
<div><img src="/upload/20170920/sadsdsasasd.jpg" alt="图片" title="图片" ></div>php
<br/>正则表达式
<div><img src="http://xxx.com/upload/20170920/sadsdsasasd.jpg" alt="图片" title="图片" ></div><div>数组
第二种状况:dom
base64转码图片返回路径编码
//富文本图片Begin if($data["content"]) { preg_match_all('/<img(.*)src="([^"]+)"[^>]+>/isU',$data["content"],$matches); $img = ""; if(!empty($matches)) { //注意,上面的正则表达式说明src的值是放在数组的第三个中 $img = $matches[2]; }else { $img = ""; } if (!empty($img)) { $img_url = $request->domain(); $patterns= array(); $replacements = array(); foreach($img as $imgItem) { if(strpos($imgItem,"http") === false) { //判断是否Base64编码的img if (preg_match('/^(data:\s*image\/(\w+);base64,)/', $imgItem, $result)) { //获取图片后缀 $type = $result[2]; //上传目录 $new_file = "./uploads/".date("Ymd",time())."/"; //判断目录是否存在,不存在建立 if(!file_exists($new_file)) { //检查是否有该文件夹,若是没有就建立,并给予最高权限 mkdir($new_file, 0700); } //上传图片到目录路径 $new_file = $new_file.time().rand(1, 99).".{$type}"; //文件保存 if (file_put_contents($new_file, base64_decode(str_replace($result[1], '', $imgItem)))) { $final_imgUrl = $img_url.ltrim($new_file, "."); $replacements[] = $final_imgUrl; //$img_new = "/".preg_replace("/\//i","\/",$imgItem)."/"; $patterns[] = $imgItem; } } } } //让数组按照key来排序 ksort($patterns); ksort($replacements); //替换内容 $data["content"] = str_replace($patterns, $replacements, $data["content"]); //$data["content"] = preg_replace($patterns, $replacements, $data["content"]); } } //2017-09-29-End
最简洁:url
function get_img_thumb_url($content="") { $url = config('wxconfig.img_http'); $pregRule = "/<[img|IMG].*?src=[\'|\"](.*?(?:[\.jpg|\.jpeg|\.png|\.gif|\.bmp]))[\'|\"].*?[\/]?>/"; $content = preg_replace($pregRule, '<img src="'.$url.'${1}" style="max-width:100%">', $content); return $content; }