//保存路径 $d = date('Ym', time()); $dirslsitss = '/uploads/images/'.$d; if(!file_exists($dirslsitss)) { @mkdir($dirslsitss, 0777); }
//从某个id开始到另一个id结束,一段一段的取不至于服务器跑崩溃 $id1 = $_GET['id1']; $id2 = $_GET['id2'];
// 页面 if(empty($id1) || empty($id2)){ echo '<div style="margin: 50px;">'; echo '<h1>下载文章图片</h1>'; echo '<p>注:找到要下载的文章开始和结束的ID,分开几次下载,一次最多十篇</p>'; echo '<form method="get" class="wp-core-ui" action="" >'; echo '开始文章ID<input type="text" name="id1" value="">'; echo '结束文章ID<input type="text" name="id2" value="">'; echo '<input type="submit" id="search-submit" class="button" value="开始下载">'; echo '</form>'; echo '</div>'; }else{
//提交执行程序 //http://gl.upglobaltour.com/wp-admin/upload-img.php?id1=451&id2=1469 $options = $wpdb->get_results( "SELECT * FROM $wpdb->posts WHERE ID BETWEEN {$id1} AND {$id2}" ); foreach($options as $k=>$v) { $co = $v->post_content;//这里返回的是一个对象,所以调用的时候要用$v->post_content if ($co) { preg_match_all('/<img.*?src="(.*?)".*?>/is', $co, $array); // echo "<pre>"; // echo htmlspecialchars(print_r($array,true)); die; if ($array[1]) { foreach ($array[1] as $imgurl) { if (is_int(strpos($imgurl, 'http'))) { $arcurl = $imgurl; $img = @file_get_contents($arcurl); if (!empty($img)) { //保存图片到服务器 $fileimgname = time() . "-" . rand(1000, 9999) . ".jpg"; $filecachs = $dirslsitss . "/" . $fileimgname; $fanhuistr = file_put_contents($filecachs, $img); $saveimgfile = "/wp-content/uploads/images/" . $d . "/" . $fileimgname; $co = str_replace($imgurl, $saveimgfile, $co); } } } }
//有图片标签的数组 if($array[0]){ foreach($array[0] as $noimg){ //如果图片不存在,将图片标签替换成空 if (!file_exists($noimg)) { $saveimg= ' '; $co = str_replace($noimg, $saveimg, $co); } if(is_int(strpos($noimg, 'base64'))){ $saveimg= ' '; $co = str_replace($noimg, $saveimg, $co); } } }
$ID = $v->ID;
//将字符串中可能存在的html实体转换为对应的字符 $co = htmlspecialchars_decode($co);
$co = preg_replace("/<a[^>]*>(.*?)<\/a>/is", "$1", $co);//去除a链接 $co = str_replace(array(" "),"",$co); $co = trim($co);//去除空格 $co = addcslashes($co,'\'');//内容数据中的单引号需要转译 $r = $wpdb->query("UPDATE $wpdb->posts SET post_content = '$co' WHERE ID = '$ID'"); print_r($r); } } }