• PHP抓取远程图片到本地保存(如何把错误信息用text文件写入)


    最近在工作中需要开发了一个用户素材功能,里面需要将网上的各种图片素材进行本地化存储。于是在网上找了一些相关资料,并根据自身开发需要,整理了一下主要的逻辑代码。

    /**
    
    * PHP将网页上的图片攫取到本地存储
    
    * @param $imgUrl  图片url地址
    
    * @param string $saveDir 本地存储路径 默认存储在当前路径
    
    * @param null $fileName 图片存储到本地的文件名
    
    * @return mix
    
    */
    
    function crabImage($imgUrl, $saveDir='./', $fileName=null){
    
          if(empty($imgUrl)){
    
                return false;
    
          }
    
    
    
          //获取图片信息大小
    
          $imgSize = getImageSize($imgUrl);
    
          if(!in_array($imgSize['mime'],array('image/jpg', 'image/gif', 'image/png', 'image/jpeg'),true)){
    
                return false;
    
          }
    
          //获取后缀名
    
          $_mime = explode('/', $imgSize['mime']);
    
          $_ext = '.'.end($_mime);
    
    
    
          if(empty($fileName)){  //生成唯一的文件名
    
                $fileName = uniqid(time(),true).$_ext;
    
          }
    
          //开始攫取
    
          ob_start();
    
          readfile($imgUrl);
    
          $imgInfo = ob_get_contents();
    
          ob_end_clean();
    
          if(!file_exists($saveDir)){
    
                mkdir($saveDir,0777,true);
    
          }
    
          $fp = fopen($saveDir.$fileName, 'a');
    
          $imgLen = strlen($imgInfo);    //计算图片源码大小
    
          $_inx = 1024;   //每次写入1k
    
          $_time = ceil($imgLen/$_inx);
    
          for($i=0; $i<$_time; $i++){
    
                fwrite($fp,substr($imgInfo, $i*$_inx, $_inx));
    
          }
    
          fclose($fp);
    
          //返回结果
    
          return substr($saveDir.$fileName,1);
    
    }

     --------------------------------------------把信息保存在txt文本中-------------------------------------------------------------------

    
    
    fputs(fopen('name'.date('Ymdhis').'.txt','a+'),$v['nickname'].PHP_EOL);
     

     ------------------------------------连接其他数据库---------------------------------------------------------------------------------------------

                $Db = Db::connect([
                    // 数据库类型
                    'type'            => 'mysql',
                    // 服务器地址
                    'hostname'    => 'xx.xx.xx.213',
                    // 数据库名
                    'database'    => 'xiaocxxu_xxt',
                    // 数据库用户名
                    'username'    => 'xiaxxxxnxx_txxt',
                    // 数据库密码
                    'password'    => 'JRLDxxxxxxdbFc',
                    'hostport'        => '',
                    // 连接dsn
                    'dsn'             => '',
                    // 数据库连接参数
                    'params'          => [],
                    // 数据库编码默认采用utf8
                    'charset'         => 'utf8',
                    // 数据库表前缀
                    'prefix'          => 'xcf_',
                    // 数据库调试模式
    
                ]);
                $start_time = time();
          
                $res = $Db->table('xcf_users')->select();
  • 相关阅读:
    802.11标准及无线网运行模式
    linux中top命令使用及查看tcp连接
    DNS信息收集命令nslookup
    Openvas安装
    nc高级应用
    poj 1411 Calling Extraterrestrial Intelligence Again(超时)
    poj 1046 Color Me Less
    1215 迷宫
    2666 Accept Ratio(打表AC)
    2021 中庸之道
  • 原文地址:https://www.cnblogs.com/yehuisir/p/11614251.html
Copyright © 2020-2023  润新知