实现思路:

首先判断图片路径是否为空,如果不为空则进一步执行,接着获取图片信息大小、图片路径后缀名,然后计算图片源码大小,每次实现写入1k,直到获取到全部数据即可。

学习视频推荐: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 array('file_name'=>$fileName,'save_path'=>$saveDir.$fileName);}$url = 'https://mmbiz.qlogo.cn/mmbiz/7WQtTI9h56hgvOH8J0Xp5v97cDNOxf94vq0NdNOhZmb2ZiaJLfwd2U8gNoEvTQXdWlRPOuibkkSebexmR2epE0pQ/0?wx_fmt=gif';//$url = 'http://www.phpernote.com/images/logo.gif';//$url = 'http://avatar.csdn.net/5/3/6/1_u014236259.jpg';var_dump( crabImage($url) );

更多相关文章教程推荐:php教程

更多相关文章

  1. PHP-Ajax实现异步上传图片到新浪图床
  2. PHP按一定比例压缩图片(保持清晰度)
  3. PHP 文字生成透明图片之路
  4. PHP上传图片到数据库并显示
  5. php实现上传图片功能
  6. 利用php实现读取excel中的图片
  7. PHP生成有背景的二维码图片(代码示例)
  8. php实现抓取不带后缀的图片
  9. 简单的路径规划案例分享

随机推荐

  1. android ListView实现圆角实例教程一
  2. Android SQLite数据库操作
  3. android的liveview装载数据
  4. Android 将从网络获取的数据缓存到私有文
  5. Qt on Android(安卓)核心编程
  6. Android市场或存在“解体”危险
  7. TableRow 背景问题以及修改对话框标题高
  8. android > WebView > 加载完整网页
  9. Android反编译与防止反编译
  10. 常见UI布局