检索内容图片批量更换图片路径

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

猜你喜欢

转载自my.oschina.net/u/914487/blog/1545302
今日推荐