日期:2011-08-11  浏览次数:20433 次

 

  1. <?php 
  2. /*使用PHP实现采集远程图片功能。基本流程: 
  3.  
  4. 1、获取目标网站图片地址。 
  5.  
  6. 2、读取图片内容。 
  7.  
  8. 3、创建要保存图片的路径并命名图片名称。 
  9.  
  10. 4、写入图片内容。 
  11.  
  12. 5、完成。 
  13.  
  14. 我们通过写几个函数来实现这一过程。*/ 
  15.  
  16. //函数make_dir()建立目录。判断要保存的图片文件目录是否存在,如果不存在则创建目录,并且将目录设置为可写权限。 
  17. function make_dir($path){  
  18.     if(!file_exists($path)){//不存在则建立  
  19.         $mk=@mkdir($path,0777); //权限  
  20.         @chmod($path,0777);  
  21.     }  
  22.     return true;  
  23. }  
  24.  
  25. //函数read_filetext()取得图片内容。使用fopen打开图片文件,然后fread读取图片文件内容。 
  26. function read_filetext($filepath){  
  27.     $filepath=trim($filepath);  
  28.     $htmlfp=@fopen($filepath,"r");  
  29.     //远程  
  30.     if(strstr($filepath,"://")){  
  31.         while($data=@fread($htmlfp,500000)){  
  32.             $string.=$data;  
  33.         }  
  34.     }  
  35.     //本地  
  36.     else{  
  37.         $string=@fread($htmlfp,@filesize($filepath));  
  38.     }  
  39.     @fclose($htmlfp);  
  40.     return $string;  
  41. }  
  42.  
  43.  
  44. //函数write_filetext()写文件,将图片内容fputs写入文件中,即保存图片文件。 
  45. function write_filetext($filepath,$string){  
  46.     //$string=stripSlashes($string);  
  47.     $fp=@fopen($filepath,"w");  
  48.     @fputs($fp,$string);  
  49.     @fclose($fp);  
  50. }  
  51.  
  52.  
  53. //函数get_filename()获取图片名称,也可以自定义要保存的文件名。 
  54. function get_filename($filepath){  
  55.     $fr=explode("/",$filepath);  
  56.     $count=count($fr)-1;  
  57.     return $fr[$count];  
  58. }  
  59.  
  60.  
  61. //然后将几个函数组合,在函数save_pic()中调用,最后返回保存后的图片路径。 
  62. function save_pic($url,$savepath=''){  
  63.     //处理地址  
  64.     $url=trim($url);  
  65.     $url=str_replace(" ","%20",$url);  
  66.     //读文件  
  67.     $string=read_filetext($url);  
  68.     if(emptyempty($string)){  
  69.         echo '读取不了文件';exit;  
  70.     }  
  71.    &nbs