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 相关文章推荐
mysql5详细安装教程
Jan 15 PHP
网页游戏开发入门教程二(游戏模式+系统)
Nov 02 PHP
PHP extract 将数组拆分成多个变量的函数
Jun 30 PHP
PHP怎么实现网站保存快捷方式方便用户随时浏览
Aug 15 PHP
php统计文章排行示例
Mar 04 PHP
CentOS下搭建PHP环境与WordPress博客程序的全流程总结
May 07 PHP
CI框架入门之MVC简单示例
Nov 21 PHP
php使用GD2绘制几何图形示例
Feb 15 PHP
Yii2使用$this-&gt;context获取当前的Module、Controller(控制器)、Action等
Mar 29 PHP
PHP基于XMLWriter操作xml的方法分析
Jul 17 PHP
YII2框架中添加自定义模块的方法实例分析
Mar 18 PHP
PHP 实现 WebSocket 协议原理与应用详解
Apr 22 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
第1次亲密接触PHP5(2)
2006/10/09 PHP
php SQL防注入代码集合
2008/04/25 PHP
简单了解WordPress开发中update_option()函数的用法
2016/01/11 PHP
php版阿里大于(阿里大鱼)短信发送实例详解
2016/11/30 PHP
Javascript 变量作用域 两个可能会被忽略的小特性
2010/03/23 Javascript
formValidator3.3的ajaxValidator一些异常分析
2011/07/12 Javascript
javascript 闭包
2011/09/15 Javascript
JS链式调用的实现方法
2013/03/07 Javascript
jQuery getJSON()+.ashx 实现分页(改进版)
2013/03/28 Javascript
从零学JS之你需要了解的几本书
2014/05/19 Javascript
总结JavaScript中布尔操作符||与&amp;&amp;的使用技巧
2015/11/17 Javascript
果断收藏9个Javascript代码高亮脚本
2016/01/06 Javascript
带有定位当前位置的百度地图前端web api实例代码
2016/06/21 Javascript
AngularJS基础 ng-init 指令简单示例
2016/08/02 Javascript
详解Jquery Easyui的验证扩展
2017/01/09 Javascript
浅谈js中同名函数和同名变量的执行问题
2017/02/12 Javascript
详解Webpack实战之构建 Electron 应用
2017/12/25 Javascript
微信小程序switch组件使用详解
2018/01/31 Javascript
webpack之引入图片的实现及问题
2018/10/08 Javascript
Vue实现一个无限加载列表功能
2018/11/13 Javascript
微信小程序 textarea 层级过高问题简单解决方案
2019/10/14 Javascript
JS端基于download.js实现图片、视频时直接下载而不是打开预览
2020/05/09 Javascript
python中hashlib模块用法示例
2017/10/30 Python
python3+PyQt5实现拖放功能
2018/04/24 Python
python中int与str互转方法
2018/07/02 Python
使用jupyter notebook运行python和R的步骤
2020/08/13 Python
Python开发入门——迭代的基本使用
2020/09/03 Python
css3中背景尺寸background-size详解
2014/09/02 HTML / CSS
介绍一下write命令
2014/08/10 面试题
2014年消防工作实施方案
2014/02/20 职场文书
网络宣传方案
2014/03/15 职场文书
初中作文评语大全
2014/04/23 职场文书
党校毕业心得体会
2014/09/13 职场文书
反对四风自我剖析材料
2014/10/07 职场文书
2015年社区环境卫生工作总结
2015/04/21 职场文书
Python预测分词的实现
2021/06/18 Python