PHP下载文章中的图片+处理文章中的字符
- 时间:
- 浏览:1114
- 来源:无双科技
//保存路径
$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);
}
}
}
猜你喜欢