php自动采集内容中带有图片地址的远程图片保存到本地

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(empty($get_file)){
   @sleep(10);
   $get_file = my_file_get_contents($value,30);
   if(empty($get_file)){
    $body = preg_replace("/".addcslashes($value,"/")."/isu", '/notfound.jpg', $body);
    continue;
    }
  }
  if(!empty($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=/get_pic/2010/03/2010062300391582.jpg />';
echo get_remote($str,'图片');

本站原创教程转请注明来源,文件上传代码会这样做。

时间: 2024-10-30 13:38:28

php自动采集内容中带有图片地址的远程图片保存到本地的相关文章

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

 这篇文章主要介绍了php采集内容中带有图片地址的远程图片并保存的方法,可实现采集并保存远程图片的功能,是非常实用的技巧,需要的朋友可以参考下     本文实例讲述了php采集内容中带有图片地址的远程图片并保存的方法.分享给大家供大家参考.具体实现方法如下:   代码如下: function my_file_get_contents($url, $timeout=30) { if ( function_exists('curl_init') ) { $ch = curl_init(); curl

用asp自动解析网页中的图片地址并将其保存到本地服务器

现在基于WEB页的HTML的编辑器在新闻系统,文章系统中用得越来越广,一个网页一粘就可以保持原来的样式,同时图片也可以在这个页中保持.但是在使用过程中,如果所粘贴页中的图片被删除,就会在自己的页面上留下一个大大的"X",影响美观.以前只好把这个图片保存下来,再重新上传到服务器上,这样实在麻烦.能不能让服务器自动去下载图片保存在服务器并且替换页面上的链接?答案是肯定的. 要实现这个功能需要经过三个步骤: 一,取得原页中的图片的地址.方法很多,可以用分割字符串,也可以用正则匹配.实践证明用

php正则匹配文章中的远程图片地址并下载图片至本地_php技巧

使用php的正则表达式来实现: $content = '这里是文章内容,这里插入一张图片测试 <img src="XXXXXXXXXXXXXXXXXXXX">'; $content = stripslashes ( $content ); $img_array = array (); // 匹配所有远程图片 preg_match_all ( "/(src|SRC)=["|'| ]{0,}(http://(.*).(gif|jpg|jpeg|bmp|png

php中使用gd库实现远程图片下载实例

  这篇文章主要介绍了php中使用gd库实现远程图片下载实例,本文直接给出实现代码,需要的朋友可以参考下 因为今天想写个远程下载图片的类,提前热身写了个php gd库实现远程图片下载功能,当然curl实现更好,php gd库实现远程图片下载功能主要使用gd库的两个函数ImageCreateFromXXX()用于生成图片函数和ImageXXX函数,XXX表示不同图片的扩展名,所以你要想办法获取远程图片的扩展名了,附上php代码如下: ? 1 2 3 4 5 6 7 8 9 10 11 12 13

Asp中利用xmlhttp下载远程图片、文件,并保存到本地

例2 二进制方式下载远程图片.文件,并保存到本地:  代码如下 复制代码 Private Function GetPicture(X) '获取图片数据     Set xml = Server.CreateObject("Microsoft.xmlhttp")     xml.Open "GET", X, False     xml.Send     GetPicture = xml.ResponseBody     Set xml=Nothing End Func

Android代码(Handler的运用),HttpURLConnection的应用,将url图片地址转换成图片。

 1 布局文件, <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"     xmlns:tools="http://schemas.android.com/tools"     android:layout_width="match_parent"     android:layout_height="match_parent&qu

安卓 发送图片怎么把 图片的remoteUrl 和 thumbnialUrl 保存到本地?

问题描述 安卓 发送图片怎么把 图片的remoteUrl 和 thumbnialUrl  保存到本地? 解决方案 发送消息后,服务器会返回,会保存在本地数据库解决方案二:但是当我关闭APP之后 remoteUrl 和 thumbnialUrl  就获取不到了

用XMLHTTP组件正确解析图片地址并将其保存

现在基于WEB页的HTML的编辑器在新闻系统,文章系统中用得越来越广,一个网页一粘就可以保持原来的样式,同时图片也可以在这个页中保持.但是在使用过程中,如果所粘贴页中的图片被删除,就会在自己的页面上留下一个大大的"X",影响美观.以前只好把这个图片保存下来,再重新上传到服务器上,这样实在麻烦.能不能让服务器自动去下载图片保存在服务器并且替换页面上的链接?答案是肯定的.要实现这个功能需要经过三个步骤:一,取得原页中的图片的地址.方法很多,可以用分割字符串,也可以用正则匹配.实践证明用正则

php中使用gd库实现远程图片下载实例_php实例

因为今天想写个远程下载图片的类,提前热身写了个php gd库实现远程图片下载功能,当然curl实现更好,php gd库实现远程图片下载功能主要使用gd库的两个函数ImageCreateFromXXX()用于生成图片函数和ImageXXX函数,XXX表示不同图片的扩展名,所以你要想办法获取远程图片的扩展名了,附上php代码如下: <?php header("Content-type:text/html ; charset=utf-8"); if (!empty($_POST['su