Home  >  Article  >  Backend Development  >  Grab web images with php_PHP tutorial

Grab web images with php_PHP tutorial

WBOY
WBOYOriginal
2016-07-13 10:37:21849browse

php capture web images

PHP is a web programming language that is easy to use. PHP has a very low learning cost and can quickly develop various web applications. It is an excellent tool.
Although many people think that PHP has many shortcomings, such as quick and dirty, but "there are only two programming languages ​​in the world, one is controversial and the other is no one uses", isn't it? As long as a tool can get things done, it is a good tool. PHP is such an excellent language tool.

<?php
header('content-type:text/html;charset=utf-8');
 set_time_limit(0);//抓取不受时间限制
 if($_POST['Submit']=="开始抓取"){
  $URL=$_POST['link'];
  get_pic($URL);
 }            
 function get_pic($pic_url) {
  //获取图片二进制流
  $data=CurlGet($pic_url);
  //利用正则表达式得到图片链接
  $pattern_src1 = '/<img .*?src\=\"(.*\.jpg).*? alt="Grab web images with php_PHP tutorial" >/';//只匹配jpg格式的图片
  $pattern_src2 = '/<img .*?src\=\"(.*\.bmp).*? alt="Grab web images with php_PHP tutorial" >/';//只匹配bmp格式的图片
  $pattern_src3 = '/<img .*?src\=\"(.*\.png).*? alt="Grab web images with php_PHP tutorial" >/';//只匹配png格式的图片
  $pattern_src4 = '/<img .*?src\=\"(.*\.gif).*? alt="Grab web images with php_PHP tutorial" >/';//只匹配gif格式的图片
  $num1 = preg_match_all($pattern_src1, $data, $match_src1);
  $num2 = preg_match_all($pattern_src2, $data, $match_src2);
  $num3 = preg_match_all($pattern_src3, $data, $match_src3);
  $num4 = preg_match_all($pattern_src4, $data, $match_src4);
  $arr_src1=$match_src1[1];//获得图片数组
  $arr_src2=$match_src2[1];
  $arr_src3=$match_src3[1];
  $arr_src4=$match_src4[1];
  echo '=============================================抓取开始=============================================<br />';
  get_name1($arr_src1);
  get_name1($arr_src2);
  get_name1($arr_src3);
  get_name1($arr_src4);
  get_name2($arr_src1);
  get_name2($arr_src2);
  get_name2($arr_src3);
  get_name2($arr_src4);
 
  echo '=============================================抓取结束=============================================<br />';
  return 0;
 }
 
 function get_name1($pic_arr){
  //图片编号和类型
  $pattern_type = '/.*\/(.*?)$/';
 
  foreach($pic_arr as $pic_item){//循环取出每幅图的地址
   $num = preg_match_all($pattern_type,$pic_item,$match_type);
   //以流的形式保存图片
   $write_fd = @fopen($match_type[1][0],"wb");
   echo "图片网址:http://blog.csdn.net/phpfenghuo/article/details/".$pic_item."<br />";
   @fwrite($write_fd, CurlGet($pic_item));
   @fclose($write_fd);
  }
  return 0;
 }
  function get_name2($pic_arr){
  //图片编号和类型
  $pattern_type = '/.*\/(.*?)$/';
 
  foreach($pic_arr as $pic_item){//循环取出每幅图的地址
   $num = preg_match_all($pattern_type,$pic_item,$match_type);
   //以流的形式保存图片
   $write_fd = @fopen($match_type[1][0],"wb");
   echo "图片网址:http://blog.csdn.net/phpfenghuo/article/details/".$_POST['link'].$pic_item."<br />";
   @fwrite($write_fd, CurlGet($_POST['link'].$pic_item));
   @fclose($write_fd);
  }
  return 0;
 }
 //抓取网页内容
 function CurlGet($url){
  $url=str_replace('&','&',$url);
  $curl = curl_init();
  curl_setopt($curl, CURLOPT_URL, $url);
  curl_setopt($curl, CURLOPT_HEADER, false);
 
  //curl_setopt($curl, CURLOPT_REFERER,$url);
  curl_setopt($curl, CURLOPT_USERAGENT, "Mozilla/4.0 (compatible; MSIE 6.0; SeaPort/1.2; Windows NT 5.1; SV1; InfoPath.2)");
  curl_setopt($curl, CURLOPT_COOKIEJAR, 'cookie.txt');
  curl_setopt($curl, CURLOPT_COOKIEFILE, 'cookie.txt');
  curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
  curl_setopt($curl, CURLOPT_FOLLOWLOCATION, 0);
  $values = curl_exec($curl);
  curl_close($curl);
  return $values;
 }    
?>
<html>
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  <title>网页图片抓取</title>
 </head>
 <body>
  
 </body>
</html>


www.bkjia.comtruehttp: //www.bkjia.com/PHPjc/735897.htmlTechArticlephp captures web page images PHP is a Web programming language that is easy to use. PHP has a very low learning cost and can quickly develop various web applications. It is an excellent tool. Although many people feel...
Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn