PHP抓取远程图片到本地保存

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

/**

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

原文地址:https://www.cnblogs.com/yehuisir/p/11614251.html

时间: 2024-12-15 06:40:09

PHP抓取远程图片到本地保存的相关文章

抓取远程图片到本地,你会用什么函数?

方式有: <?php $img = file_get_contents('http://www.xfcodes.com/ img/baidu_logo.gif'); file_put_contents('1.gif',$img); echo '<img src="1.gif">'; 这段抓取远程图片至本地在运行中360极速.火狐.谷歌没有出现错误,可以正常运行. 另外还有: <?php $pagecontent = file_get_contents('http

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

ASP.NET下载远程图片保存到本地的方法.保存抓取远程图片 2012-05-16 11:25:51     我来说两句      收藏    我要投稿 以下介绍两种方法:1.利用WebRequest,WebResponse 类WebRequest wreq=WebRequest.Create("http://up.2cto.com/2012/0516/20120516112717995.gif");    HttpWebResponse wresp=(HttpWebResponse)

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

这个坑娘的功能,开始时居然不知道如何触发,以为有个按钮,点击一下触发,翻阅了文档,没有发现,然后再网络上看到原来是复制粘贴非白名单内的图片到编辑框时触发,坑娘啊............... 问题又来了:今天在写百度UEditor编辑器的[取远程图片功能]时有碰到:该功能如何关闭了? 又花了15分钟左右的时间查阅了[官方文档]以及[官方论坛],都没有找到解决办法,那就查阅下源文件看看,是否有相关的判断呢(本人JS非常烂) 于是马上查阅:ueditor.all.js文件,发现如下代码 // plu

【aspnetcore】抓取远程图片

找到要抓取的图片地址:http://i.imgur.com/8S7OaEB.jpg 抓取的步骤: 请求图片路径 获取返回的数据 将数据转换为stream 将stream转换为Image 保存Image 明晰了步骤,接下来就简单了,直接上代码 public class RemoteImageCatchUtil { private static string[] ImageExts = new[] { "jpg", "jpeg", "png", &q

git 抓取远程分支到本地分支(本地不存在这个分支)

问题/需求: 本地仓库在工作电脑上,同时最新的更改已经推送到远程仓库,春节放假时有需求需要在家的电脑上建立仓库,同时建立了一个新分支"new",同时也推送到远程仓库中: 后来想把远程分支“new”抓取到工作电脑的本地仓库: 先查看本地分支 $ git branch front * master 查看所有分支 $ git branch -a front * master remotes/origin/HEAD -> origin/master remotes/origin/fron

PHP抓取远程图片

1 <?php 2 function getImage($url, $filename=""){ 3 if($url == ""){ 4 return false; 5 } 6 $ext = strrchr($url, "."); 7 if($ext!=".gif" && $ext!=".jpg" && $ext!=".bmp" &&

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

xheditor是一款很不错的开源编辑器,用起来很方便也很强大. 分享一个xheditor直接上传截图的问题解决方法. 第一步.设置参数 localUrlTest:/^https?:\/\/[^\/]*?(hsa\.com)\//i, remoteImgSaveUrl:'http://www.hsa.com/test_up.asp', 参数介绍:localUrlTest:意思是检查是否是本站地址格式.remoteImgSaveUrl:如果检查出来不是本站的图片,那么将会将图片的src属性值发送到

下载远程(第三方服务器)文件、图片,保存到本地(服务器)的方法、保存抓取远程文件、图片

将一台服务器的文件.图片,保存(下载)到另外一台服务器进行保存的方法: 1 #region 图片下载 2 3 #region 图片下载[使用流.WebRequest进行保存] 4 /// <summary> 5 /// 图片下载[使用流.WebRequest进行保存] 6 /// </summary> 7 /// <param name="fileUrl">图片URL地址(例如:http://img.baidu.com/video/img/video

php 保存编辑器内容中的远程图片为本地图片

有时,我们的编辑器复制过来的图片是远程的,需要下载到本地服务器上. 1.提取远程图片 /* *功能:php完美实现下载远程图片保存到本地 *参数:文件url,保存文件目录,保存文件名称,使用的下载方式 *当保存文件名称为空时则使用远程文件原来的名称 */ private function getImage($url,$filename='',$type=0){ if(trim($url)==''){ return array('file_name'=>'','save_path'=>'','e