php采集内容中带有图片地址的远程图片并保存的方法


Posted in PHP onJanuary 03, 2015

本文实例讲述了php采集内容中带有图片地址的远程图片并保存的方法。分享给大家供大家参考。具体实现方法如下:

function my_file_get_contents($url, $timeout=30) { 

 if ( function_exists('curl_init') )  

 { 

  $ch = curl_init(); 

  curl_setopt ($ch, curlopt_url, $url); 

  curl_setopt ($ch, curlopt_returntransfer, 1); 

  curl_setopt ($ch, curlopt_connecttimeout, $timeout); 

  $file_contents = curl_exec($ch); 

  curl_close($ch); 

 }  

 else if ( ini_get('allow_url_fopen') == 1 || strtolower(ini_get('allow_url_fopen')) == 'on' )    

 { 

  $file_contents = @file_get_contents($url); 

 }  

 else  

 { 

  $file_contents = ''; 

 } 

 return $file_contents; 

}

 
function get_remote($body,$title){ 

 

 $img_array = array();  

 $img_path = realpath("../../../upfile/news/").'/'.date("y/m/d/"); //采集远程图片保存地址 

 //die($img_path); 

 $img_rpath='/upfile/news/'.date("y/m/d/");  //设置访问地址 

 $body = stripslashes(strtolower($body));  

 preg_match_all("/(src|src)=["|'| ]{0,}(http://(.*).(gif|jpg|jpeg|png))/isu",$body,$img_array);  

 $img_array = array_unique($img_array[2]);  

 foreach ($img_array as $key => $value) {  

  $get_file = my_file_get_contents($value,60); 

  $filetime = time();    

  $filename = date("ymdhis",$filetime).rand(1,999).'.'.substr($value,-3,3);  

  if(emptyempty($get_file)){ 

   @sleep(10); 

   $get_file = my_file_get_contents($value,30); 

   if(emptyempty($get_file)){ 

    $body = preg_replace("/".addcslashes($value,"/")."/isu", '/notfound.jpg', $body); 

    continue; 

    } 

  } 

  if(!emptyempty($get_file) ){ 

   if( mkdirs($img_path) ) 

   { 

    $fp = fopen($img_path.$filename,"w"); 

    if(fwrite($fp,$get_file)){          

     $body = preg_replace("/".addcslashes($value,"/")."/isu", $img_rpath.$filename, $body);  

    } 

    fclose($fp); 

    @sleep(6); 

   }    

  }     

  

 } 

 $body =str_replace("<img","<img ",$body);  

 return $body;

  

} 

 

function mkdirs($dir) 

{ 

 if(!is_dir($dir)){ 

  if(!mkdirs(dirname($dir))){ 

   return false;} 

  if(!mkdir($dir,0777)){ 

   return false;} 

 } 

 return true; 

} 

//用法如下:

 

$str ='fasfsdafsa<img src=http://filesimg.xxxx.com/2010/03/2010062300391582.jpg />'; 

echo get_remote($str,'图片');

希望本文所述对大家的php程序设计有所帮助。

PHP 相关文章推荐
十天学会php之第二天
Oct 09 PHP
一个显示天气预报的程序
Oct 09 PHP
php PDO中文乱码解决办法
Jul 20 PHP
php 数组的合并、拆分、区别取值函数集
Feb 15 PHP
批量修改RAR文件注释的php代码
Nov 20 PHP
php对象在内存中的存在形式分析
Feb 03 PHP
PHP中常见的缓存技术实例分析
Sep 23 PHP
PHP实现批量检测网站是否能够正常打开的方法
Aug 23 PHP
jquery+thinkphp实现跨域抓取数据的方法
Oct 15 PHP
php+resumablejs实现的分块上传 断点续传功能示例
Apr 18 PHP
Laravel框架执行原生SQL语句及使用paginate分页的方法
Aug 17 PHP
laravel入门知识点整理
Sep 15 PHP
php中socket通信机制实例详解
Jan 03 #PHP
php读取csv数据保存到数组的方法
Jan 03 #PHP
php获取用户浏览器版本的方法
Jan 03 #PHP
php堆排序实现原理与应用方法
Jan 03 #PHP
php购物车实现方法
Jan 03 #PHP
PHP实现格式化文件数据大小显示的方法
Jan 03 #PHP
php自定义加密与解密程序实例
Dec 31 #PHP
You might like
PHP输出时间差函数代码
2013/01/28 PHP
php计算程序运行时间的简单例子分享
2014/05/10 PHP
微信红包随机生成算法php版
2016/07/21 PHP
在云虚拟主机部署thinkphp5项目的步骤详解
2017/12/21 PHP
PHP设计模式之装饰器模式定义与用法简单示例
2018/08/13 PHP
Laravel推荐使用的十个辅助函数
2019/05/10 PHP
SlideView 图片滑动(扩展/收缩)展示效果
2010/08/01 Javascript
Jquery网页出现的乱码问题的三种解决方法
2013/06/30 Javascript
SeaJS入门教程系列之使用SeaJS(二)
2014/03/03 Javascript
javascript实现页面内关键词高亮显示代码
2014/04/03 Javascript
javascript写的一个模拟阅读小说的程序
2014/04/04 Javascript
jQuery+HTML5实现手机摇一摇换衣特效
2015/06/05 Javascript
Js的Array数组对象详解
2016/02/22 Javascript
javascript判断图片是否加载完成的方法推荐
2016/05/13 Javascript
微信小程序 教程之WXSS
2016/10/18 Javascript
基于JS设计12306登录页面
2016/12/28 Javascript
javascript基本常用排序算法解析
2017/09/27 Javascript
vue解决跨域路由冲突问题思路解析
2017/11/03 Javascript
vue 左滑删除功能的示例代码
2019/01/28 Javascript
你可能从未使用过的11+个JavaScript特性(小结)
2020/01/08 Javascript
matplotlib绘图实例演示标记路径
2018/01/23 Python
用Python shell简化开发
2018/08/08 Python
Python中的self用法详解
2019/08/06 Python
Python分割训练集和测试集的方法示例
2019/09/19 Python
浅析python连接数据库的重要事项
2021/02/22 Python
喜诗官方在线巧克力店:See’s Candies
2017/01/01 全球购物
一些Solaris面试题
2013/03/22 面试题
自我鉴定200字
2013/10/28 职场文书
中医专业应届生求职信
2013/11/17 职场文书
30年同学聚会感言
2014/01/30 职场文书
挂科检讨书范文
2014/02/20 职场文书
“四风”问题自我剖析材料思想汇报
2014/09/23 职场文书
八项规定整改方案
2014/10/01 职场文书
无子女夫妻离婚协议书(4篇)
2014/10/20 职场文书
SSM项目使用拦截器实现登录验证功能
2022/01/22 Java/Android
CSS文本阴影 text-shadow 悬停效果详解
2022/05/25 HTML / CSS