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

/**

* 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();

PHP抓取远程图片到本地保存(如何把错误信息用text文件写入)的更多相关文章

  1. PHP抓取远程图片教程(包含不带后缀图片)

    之前做微信登录开发时候,发现微信头像图片没有后缀名,传统的图片抓取方式不奏效,需要特殊的抓取处理.所以,后来将各种情况结合起来,封装成一个类,分享出来. 创建项目 作为演示,我们在www根目录创建项目 ...

  2. 百度UEditor编辑器关闭抓取远程图片功能(默认开启)

    这个坑娘的功能,开始时居然不知道如何触发,以为有个按钮,点击一下触发,翻阅了文档,没有发现,然后再网络上看到原来是复制粘贴非白名单内的图片到编辑框时触发,坑娘啊............... 问题又来 ...

  3. 【aspnetcore】抓取远程图片

    找到要抓取的图片地址:http://i.imgur.com/8S7OaEB.jpg 抓取的步骤: 请求图片路径 获取返回的数据 将数据转换为stream 将stream转换为Image 保存Image ...

  4. ASP.NET下载远程图片保存到本地的方法、保存抓取远程图片

    以下介绍两种方法:1.利用WebRequest,WebResponse 类 WebRequest wreq=WebRequest.Create("http://www.xueit.com/e ...

  5. 用ASP.NET实现下载远程图片保存到本地的方法 保存抓取远程图片的方法

    以下介绍两种方法:1.利用WebRequest,WebResponse 类WebRequest wreq=WebRequest.Create("http://files.jb51.net/f ...

  6. xheditor编辑器上传截图图片抓取远程图片代码

    xheditor是一款很不错的开源编辑器,用起来很方便也很强大. 分享一个xheditor直接上传截图的问题解决方法. 第一步.设置参数 localUrlTest:/^https?:\/\/[^\/] ...

  7. 下载远程(第三方服务器)文件、图片,保存到本地(服务器)的方法、保存抓取远程文件、图片 将图片的二进制字节字符串在HTML页面以图片形式输出 asp.net 文件 操作方法

    下载远程(第三方服务器)文件.图片,保存到本地(服务器)的方法.保存抓取远程文件.图片   将一台服务器的文件.图片,保存(下载)到另外一台服务器进行保存的方法: 1 #region 图片下载 2 3 ...

  8. php远程抓取网站图片并保存

    以前看到网上别人说写程序抓取网页图片的,感觉挺神奇,心想什么时候我自己也写一个抓取图片的方法! 刚好这两天没什么事,就参考了网上一个php抓取图片代码,重点借鉴了 匹配img标签和其src属性正则的写 ...

  9. Python3简单爬虫抓取网页图片

    现在网上有很多python2写的爬虫抓取网页图片的实例,但不适用新手(新手都使用python3环境,不兼容python2), 所以我用Python3的语法写了一个简单抓取网页图片的实例,希望能够帮助到 ...

随机推荐

  1. C#的一般处理程序中Cookie的写入、读取、清除

    1.写入Cookie值 string userName = context.Request.Form["u_Name"].ToString().Trim(); string pwd ...

  2. php和java的优势

    现在市场上的电子商务软件基本上可归结为两大阵营,即PHP阵营和Java阵营.但对接触电子商务不久的用户来说,看到的往往只是它们的表相,只是明显的价格差异,却很难看出它们之间的实际差异.下面我们就为大家 ...

  3. [BZOJ2438]杀人游戏

    Description 一位冷血的杀手潜入 Na-wiat,并假装成平民.警察希望能在 N 个人里面,查出谁是杀手.警察能够对每一个人 进行查证,假如查证的对象是平民,他会告诉警察,他认识的人, 谁是 ...

  4. call,apply,bind的用法和细节差异

    call,apply,bind的用法 call,apply和bind都用来改变js中this对象的指向 var dog = { name:'dog', speak: function(value){ ...

  5. Java 不被看好前景堪忧?可能是想多了!

    Java技术栈 www.javastack.cn 优秀的Java技术公众号 来源:代码湾 Java发行二十多年来,尤其是在战胜C和C++成为最受程序员喜欢的编程语言之后,一直都是开发者的宠儿. 虽然斯 ...

  6. [Codeforces722E] Research Rover (dp+组合数学)

    [Codeforces722E] Research Rover (dp+组合数学) 题面 给出一个N*M的方格阵,从(1,1)出发,到(N,M)结束,从(x,y)只能走到(x+1,y)或(x,y+1) ...

  7. Linux关闭重启系统

    reboot:重启系统 - 需要root权限 halt:关机 - 需要root权限 poweroff:关机 - 可直接运行

  8. JS中去除字符串空白符

    海纳百川,有容乃大 1.通过原型创建字符串的trim() //去除字符串两边的空白 String.prototype.trim=function(){ return this.replace(/(^\ ...

  9. MySQL数据库使用xtrabackup备份实现小例子

    关于MySQL数据库的备份的工具和方式也比较多,本文只简单介绍一些我司一个平台的备份方案.Xtrabackup是由percona开源的免费数据库热备份软件,但是只能对InnoDB数据库和XtraDB存 ...

  10. 390-基于Zynq UltraScale+ MPSoC的单板嵌入式计算机

    基于Zynq UltraScale+ MPSoC的单板嵌入式计算机 概述:Aldec TySOM-3-ZU7EV,将Xilinx Zynq UltraScale+ ZU7EV MPSoC以及DDR4 ...