zoukankan      html  css  js  c++  java
  • 写一个函数,获取一篇文章内容中的全部图片,并下载

    function download_images($article_url = '', $image_path = 'tmp'){
    
        // 获取文章类容
        $content = file_get_contents($article_url);
    
        // 利用正则表达式得到图片链接
        $reg_tag = '/<img.*?\"([^\"]*(jpg|bmp|jpeg|gif|png)).*?>/';
        $ret = preg_match_all($reg_tag, $content, $match_result); 
        $pic_url_array = array_unique($match_result1[1]);
    
        // 创建路径
        $dir = getcwd() . DIRECTORY_SEPARATOR .$image_path;
        mkdir(iconv("UTF-8", "GBK", $dir), 0777, true);
    
        foreach($pic_url_array as $pic_url){
            // 获取文件信息
            $ch = curl_init($pic_url);
            curl_setopt($ch, CURLOPT_HEADER, 0);
            curl_setopt($ch, CURLOPT_NOBODY, 0);
            curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE );
            curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE );
            curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
            $fileInfo = curl_exec($ch);
            $httpinfo = curl_getinfo($ch);
            curl_close($ch);
    
            // 获取图片文件后缀
            $ext = strrchr($pic_url, '.');
            $filename = $dir . '/' . uniqid() . $ext; 
    
            // 保存图片信息到文件
            $local_file = fopen($filename, 'w');
            if(false !== $local_file){
                if( false !== fwrite($local_file, $filecontent) ){
                fclose($local_file);
                }
            }
        }
    
    }
  • 相关阅读:
    Hibernate学习之缓存机制
    Hibernate学习之hibernate状态
    Ajax学习之小结
    Hibernate学习之hibernate执行顺序
    Svn入门
    Svn服务启动的两种方式
    Eclipse安装Svn插件
    一种给力的带背景的超链接的写法
    转载:IE下div使用margin:0px auto不居中的原因
    github上的Lua in Erlang
  • 原文地址:https://www.cnblogs.com/lxwphp/p/15453638.html
Copyright © 2011-2022 走看看