内容IMG图片地址批量追加域名

//富文本图片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>

<br/>

<div><img src="http://xxx.com/upload/20170920/sadsdsasasd.jpg" alt="图片" title="图片" ></div><div>

 

第二种情况:

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

最简洁:

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;
}

 

转载于:https://my.oschina.net/u/914487/blog/1545302

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值