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
PHP中一个控制字符串输出的函数
Oct 09 PHP
PHP URL路由类实例
Nov 12 PHP
PHP实现数字补零功能的2个函数介绍
May 12 PHP
ThinkPHP实现二级循环读取的方法
Nov 03 PHP
PHP中strcmp()和strcasecmp()函数字符串比较用法分析
Jan 07 PHP
php实现生成验证码实例分享
Apr 10 PHP
php的laravel框架快速集成微信登录的方法
Dec 12 PHP
Thinkphp结合AJAX长轮询实现PC与APP推送详解
Jul 31 PHP
PHP操作Postgresql封装类与应用完整实例
Apr 24 PHP
PHP性能测试工具xhprof安装与使用方法详解
Apr 29 PHP
PHP Pipeline 实现中间件的示例代码
Apr 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
laravel 创建命令行命令的图文教程
2019/10/23 PHP
javascript 解析后的xml对象的读取方法细解
2009/07/25 Javascript
js原型链原理看图说明
2012/07/07 Javascript
javascript实现微信分享
2014/12/23 Javascript
利用JavaScript脚本实现滚屏效果的方法
2015/07/07 Javascript
javascript实现在线客服效果
2015/07/15 Javascript
jQuery实现可编辑的表格实例讲解(2)
2015/09/17 Javascript
Nodejs中的this详解
2016/03/26 NodeJs
简单的js表格操作
2016/09/24 Javascript
jQuery Validate格式验证功能实例代码(包括重名验证)
2017/07/18 jQuery
解决angularjs中同步执行http请求的方法
2018/08/13 Javascript
[01:38:19]夜魇凡尔赛茶话会 第五期
2021/03/11 DOTA
详解Python如何获取列表(List)的中位数
2016/08/12 Python
遗传算法之Python实现代码
2017/10/10 Python
python中scikit-learn机器代码实例
2018/08/05 Python
使用Python自动生成HTML的方法示例
2019/08/06 Python
Python如何调用JS文件中的函数
2019/08/16 Python
python爬虫 urllib模块url编码处理详解
2019/08/20 Python
Python爬虫之urllib基础用法教程
2019/10/12 Python
Python ADF 单位根检验 如何查看结果的实现
2020/06/03 Python
详解python tcp编程
2020/08/24 Python
sqlalchemy实现时间列自动更新教程
2020/09/02 Python
北美领先的智能产品购物网站:Wellbots
2018/06/11 全球购物
英国时尚配饰、珠宝和服装网站:KJ Beckett
2020/01/23 全球购物
聚美优品广告词改编
2014/03/14 职场文书
竞选副班长演讲稿
2014/04/24 职场文书
优质服务演讲稿
2014/05/14 职场文书
人事行政经理岗位职责
2014/06/18 职场文书
森林防火标语
2014/06/23 职场文书
爱护公共设施的标语
2014/06/24 职场文书
人事文员岗位职责
2015/02/04 职场文书
党员个人年度总结
2015/02/14 职场文书
上班迟到检讨书范文
2015/05/06 职场文书
叶问观后感
2015/06/15 职场文书
青年人初次创业的“五不要”
2019/08/23 职场文书
php去除deprecated的实例方法
2021/11/17 PHP