php织梦已发文章远程图片如何一键本地化?

   织梦虽然已经提供远程图片本地化功能,网上也有很多教程,但有一个问题,哪就是我们已经发布的文章如何把这些远程图片本地化呢?
  比如我们的网站有已经有了一千篇文章,这些文章中有的图片是远程图片,有的是本地图片,哪这些织梦网站以发布文章的远程图片如何本地化呢?
  话不多说,具体方法如下。把下面代码保存一个php文件,放你的网站根目录。然后访问这个文件即可实现把这些远程图片一键本地化。

<?php
echo '成功:<span id="message"></span>----失败:<span id="message1"></span><br>';
require_once (dirname(__FILE__) . "/include/common.inc.php");
$i=1;
$u=1;
for ($x=239; $x<=243; $x++) {
	$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('xxxxx.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++;
		}
   }

}

注意几点:$x=239; $x<=243;  是你需要本地化的文章开始 id 和结束 id

                : uploads/temp/ 是你要存放本地图片的地址 如果没有需要你先建个

                /nclude/dedesql.class.php 文件中50行 设置为 $this->safeCheck =FALSE;

                xxxxx.com   为你自己的域名

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

永远的WEB小白

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

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

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

打赏作者

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

抵扣说明:

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

余额充值