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和js交互一例-PHP教程,PHP应用
Jan 03 PHP
php基础学习之变量的使用
Jun 09 PHP
php 获取百度的热词数据的代码
Feb 18 PHP
深入Memcache的Session数据的多服务器共享详解
Jun 13 PHP
php中current、next与reset函数用法实例
Nov 17 PHP
Codeigniter框架实现获取分页数据和总条数的方法
Dec 05 PHP
dvwa+xampp搭建显示乱码的问题及解决方案
Aug 23 PHP
PHP7标量类型declare用法实例分析
Sep 26 PHP
thinkPHP中volist标签用法示例
Dec 06 PHP
浅谈PHP中如何实现Hook机制
Nov 14 PHP
浅谈laravel数据库查询返回的数据形式
Oct 21 PHP
PHP实现限制域名访问的实现代码(本地验证)
Sep 13 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
当海贼王变成JOJO风
2020/03/02 日漫
如何设置mysql允许外网访问
2013/06/04 PHP
php实现XSS安全过滤的方法
2015/07/29 PHP
php处理单文件、多文件上传代码分享
2016/08/24 PHP
JS的递增/递减运算符和带操作的赋值运算符的等价式
2007/12/08 Javascript
javascript模仿msgbox提示效果代码
2008/06/10 Javascript
Javascript 自定义类型方法小结
2010/03/02 Javascript
JS获取地址栏参数的小例子
2013/08/23 Javascript
Jquery实现由下向上展开效果的例子
2014/12/08 Javascript
js实现文字滚动效果
2016/03/03 Javascript
异步加载JS、CSS代码(推荐)
2016/06/15 Javascript
Vue.JS入门教程之列表渲染
2016/12/01 Javascript
Vue实现双向数据绑定
2017/05/03 Javascript
Angular+Node生成随机数的方法
2017/06/16 Javascript
vue实现模态框的通用写法推荐
2018/02/26 Javascript
JS表单传值和URL编码转换
2018/03/03 Javascript
微信小程序实现录音功能
2019/11/22 Javascript
SpringBoot在yml配置文件中配置druid的操作
2020/11/16 Javascript
JavaScript实现页面高亮操作提示和蒙板
2021/01/04 Javascript
python通过ElementTree操作XML获取结点读取属性美化XML
2013/12/02 Python
剖析Django中模版标签的解析与参数传递
2015/07/21 Python
PyQt5每天必学之创建窗口居中效果
2018/04/19 Python
python实现朴素贝叶斯算法
2018/11/19 Python
对Python定时任务的启动和停止方法详解
2019/02/19 Python
如何基于Python Matplotlib实现网格动画
2020/07/20 Python
vscode配置anaconda3的方法步骤
2020/08/08 Python
Python实现七个基本算法的实例代码
2020/10/08 Python
如何用Python 实现全连接神经网络(Multi-layer Perceptron)
2020/10/15 Python
html5 button autofocus 属性介绍及应用
2013/01/04 HTML / CSS
html5自动播放mov格式视频的实例代码
2020/01/14 HTML / CSS
TripAdvisor西班牙官方网站:全球领先的旅游网站
2018/01/10 全球购物
shell程序中如何注释
2012/02/17 面试题
财政专业大学生职业生涯规划书
2014/09/17 职场文书
幼儿园小班见习报告
2014/10/31 职场文书
结婚司仪主持词
2015/06/29 职场文书
详解非极大值抑制算法之Python实现
2021/06/28 Python