织梦远程图片本地化

<?php
echo '查找文章数:<span id="message2">0</span><br>成功本地化:<span id="message">0</span><br>篇文章失败:<span id="message1">0</span> <br>未发现远程图片文章数:<span id="message3">0</span> <br>';
require_once (dirname(__FILE__) . "/include/common.inc.php");
$begin=1;//文章开始id
$over=10;//文章结束id
$i=1;
$u=1;
$step=1;
$vacancy=1;
ob_implicit_flush(1);
for ($x=$begin; $x<=$over; $x++) {
	sleep(1);//避免太快1s执行一次
	$id=$x;
	$proinfo=$dsql->GetOne("select body from `#@__archives` as a inner join `#@__addonarticle` as b on a.id=b.aid where a.id={$id} limit 1");

	//输出文body字段内容
	$weigeti=$proinfo[body];
	//echo $weigeti;
	//修改文章中的内容
	$reg = "/<img[^>]*src=\"(http(|s):\/\/(.*)\.(jpg|gif|png|jpeg|bmp|bnp))\"/isU";
	$reg1 = "/(http(|s):\/\/(.*)\.(jpg|gif|png|jpeg|bmp|bnp))/isU";
	preg_match_all($reg, $weigeti, $img_array, PREG_PATTERN_ORDER);
	$img_array = array_unique($img_array[1]);
	//print_r($img_array);
	foreach ($img_array as $img){
		$url=parse_url($img);
		$imgurl=$url[host];
		if('lplp54.com'!= $imgurl){
			//图片重新命名随机数加日期
		  $rand=rand(1, 1000);  
		  $filename=date('Ymdhis', time()).$rand;
		  $file = file_get_contents($img);
          $filend = "jpg"; 
          file_put_contents('uploads/temp/'.$filename.".".$filend,$file);
			
			 //获取新图片地址,用来替换文章中的图片
		     $images_url='/uploads/temp/'. $filename.".".$filend;
		  	 $body = preg_replace($reg1,$images_url,$weigeti);

		}

	}
	$body = addslashes($body);
	//echo $body;
	//如果$bod不为空
	   if($body!=''){
		//更新原数据库文章,把远程图片地址更换为下载后的远程图片地址
		$rs = $dsql->ExecuteNoneQuery("UPDATE `#@__addonarticle` SET body='{$body}' where aid={$id}");
			if($rs){
			 echo '<script>document.getElementById("message").innerHTML="'.$i.'";</script>';
			 $i++;
			}else{
				
			echo '<script>document.getElementById("message1").innerHTML="'.$u.'";</script>';
			$u++;
		    }
       }else{
		   echo '<script>document.getElementById("message3").innerHTML="'.$vacancy.'";</script>';
	       $vacancy++;
	   }

  echo '<script>document.getElementById("message2").innerHTML="'.$step.'";</script>';
  unset($proinfo,$filename,$file,$images_url,$body); //释放内存
}

//清除缓存其他方法   echo ob_get_clean();   //获取当前缓冲区内容并清除当前的输出缓冲

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

永远的WEB小白

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值