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下使用SimpleXML 处理XML 文件
Feb 27 PHP
具有时效性的php加密解密函数代码
Jun 19 PHP
php缓存技术详细总结
Aug 07 PHP
PHP获取表单所有复选框的值的方法
Aug 28 PHP
PHP扩展程序实现守护进程
Apr 16 PHP
php实现QQ空间获取当前用户的用户名并生成图片
Jul 25 PHP
php构造方法中析构方法在继承中的表现
Apr 12 PHP
使用php实现网站验证码功能【推荐】
Feb 09 PHP
php计算多个集合的笛卡尔积实例详解
Feb 16 PHP
详解PHP防止盗链防止迅雷下载的方法
Apr 26 PHP
[原创]php正则删除html代码中class样式属性的方法
May 24 PHP
PHP中的浅复制与深复制的实例详解
Oct 26 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编程最快明白》第六讲:Mysql数据库操作
2010/11/01 PHP
YII动态模型(动态表名)支持分析
2016/03/29 PHP
使用prototype.js 的时候应该特别注意的几个问题.
2007/04/12 Javascript
AJAX 网页保留浏览器前进后退等功能
2011/02/12 Javascript
让js弹出窗口居前显示的实现方法
2013/07/10 Javascript
js捕获鼠标滚轮事件代码
2013/12/16 Javascript
限制上传文件大小和格式的jQuery插件实例
2015/01/24 Javascript
AngularJS基础知识笔记之过滤器
2015/05/10 Javascript
jQuery简单操作cookie的插件实例
2016/01/13 Javascript
jQuery 中的 DOM 操作
2016/04/26 Javascript
jQuery获取当前点击的对象元素(实现代码)
2016/05/19 Javascript
jQuery实现下拉框多选 jquery-multiselect 的实例代码
2016/07/14 Javascript
JS取模、取商及取整运算方法示例
2016/10/13 Javascript
Bootstrap基本组件学习笔记之下拉菜单(7)
2016/12/07 Javascript
VueJs单页应用实现微信网页授权及微信分享功能示例
2017/07/26 Javascript
AngularJS集合数据遍历显示的实例
2017/12/27 Javascript
angularjs的单选框+ng-repeat的实现方法
2018/09/12 Javascript
vue2.0 + ele的循环表单及验证字段方法
2018/09/18 Javascript
Node.js中console.log()输出彩色字体的方法示例
2019/12/01 Javascript
python动态监控日志内容的示例
2014/02/16 Python
Python中的条件判断语句基础学习教程
2016/02/07 Python
Python嵌套列表转一维的方法(压平嵌套列表)
2018/07/03 Python
使用Python实现分别输出每个数组
2019/12/06 Python
通过实例解析Python RPC实现原理及方法
2020/07/07 Python
HTML5中indexedDB 数据库的使用实例
2017/05/11 HTML / CSS
海外淘书首选:AbeBooks
2017/07/31 全球购物
美国顶级水上运动专业店:Marine Products
2018/04/15 全球购物
Wojas罗马尼亚网站:波兰皮鞋品牌
2018/11/01 全球购物
StubHub中国:购买和出售全球活动门票
2020/01/01 全球购物
中学生校园广播稿
2014/01/16 职场文书
中学生自我评价范文
2014/02/08 职场文书
贷款委托书
2014/08/01 职场文书
党员查摆问题及整改措施
2014/10/10 职场文书
小学安全工作总结2015
2015/05/18 职场文书
诉讼和解协议书
2016/03/23 职场文书
详解nginx.conf 中 root 目录设置问题
2021/04/01 Servers