PHP下载文章中的图片+处理文章中的字符

  • 时间:
  • 浏览:145
  • 来源:无双科技

//保存路径

$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=  '&nbsp;';

            $co = str_replace($noimg, $saveimg, $co);

        }

        if(is_int(strpos($noimg, 'base64'))){

            $saveimg=  '&nbsp;';

            $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("&nbsp;"),"",$co);

            $co = trim($co);//去除空格

            $co = addcslashes($co,'\'');//内容数据中的单引号需要转译

            $r  = $wpdb->query("UPDATE $wpdb->posts SET post_content = '$co' WHERE ID = '$ID'");

            print_r($r);

     }

    }

}

猜你喜欢

当天24小时内蜘蛛抓取分析工具(百度、谷歌、360、搜狗、必应、神马、头条)

当天24小时内蜘蛛抓取分析工具(百度、谷歌、360、搜狗、必应、神马、头条)

蜘蛛爬行痕迹记录工具介绍: 后台可以查看各大搜索蜘蛛爬行的详细信息(最后来访时间,ip地址,被访地址),根据访问频率查看异常伪造蜘蛛进行屏蔽处理,减轻服务器压力。蜘蛛

2020-07-10

简单PHP微信文章采集并下载图片上传保存到七牛云

简单PHP微信文章采集并下载图片上传保存到七牛云

通过搜狗搜索采集公众号历史消息,在浏览器中打开要采集的文章链接地址。具体的执行方法如下:publicfunctionwxcaiji(){   &n

2020-07-10

微信采集微信图片下载PHP采集文章

百度竞价搜索推广怎么找到ip和屏蔽

百度竞价搜索推广怎么找到ip和屏蔽

在正常推广的时候,经常会早到恶意点击,虽然百度有机制不算到计费系统内,但还是会给客服接待人员造成大量困扰,为减少推广的成本,可以屏蔽一些恶意的点击IP,是最理智的选择,不过在国

2020-07-01

View UI(iView) Upload 自定义多图上传列表提交

View UI(iView) Upload 自定义多图上传列表提交

iViewUpload自定义多图上传列表提交可以自由控制上传列表,完成各种业务逻辑,示例是一个照片墙,可以查看大图和删除。设置属性 show-upload-list&

2020-06-29

iViewUpload上传

页面顶部空白行,源码显示&amp;amp;#65279解决方法

页面顶部空白行,源码显示&amp;amp;#65279解决方法

最近在做一个项目的时候,好几个页面都出现顶部莫名多出一定高度的空白,查看自己写的样式又没有添加这样的样式。查看源码后模板文件生成html文件之后会在body开头处加入一个可见的

2020-06-08