> 백엔드 개발 > PHP 튜토리얼 > 웹사이트 이미지_php 기술을 캡처하고 저장하기 위한 PHP 구현 코드

웹사이트 이미지_php 기술을 캡처하고 저장하기 위한 PHP 구현 코드

WBOY
풀어 주다: 2016-05-16 20:05:52
원래의
1100명이 탐색했습니다.

이 프로그램은 웹 페이지 소스 코드 캡처, 이미지 링크 획득 및 분석, 동일한 이미지 링크 병합 기능을 구현하고 이미지 캡처 기능을 구현합니다. PHP의 강력한 네트워크 콘텐츠 처리 기능을 사용하여 지정된 웹사이트의 모든 이미지를 가져와 현재 디렉터리에 저장합니다.

<&#63;php 
/*完成网页内容捕获功能*/ 
function get_img_url($site_name){ 
 $site_fd = fopen($site_name, "r"); 
 $site_content = ""; 
 while (!feof($site_fd)) { 
  $site_content .= fread($site_fd, 1024); 
 } 
 /*利用正则表达式得到图片链接*/ 
 $reg_tag = '/<img.*&#63;\"([^\"]*(jpg|bmp|jpeg|gif)).*&#63;>/'; 
 $ret = preg_match_all($reg_tag, $site_content, $match_result); 
 fclose($site_fd); 
 return $match_result[1]; 
} 
 
/* 对图片链接进行修正 */ 
function revise_site($site_list, $base_site){ 
 foreach($site_list as $site_item) { 
  if (preg_match('/^http/', $site_item)) { 
   $return_list[] = $site_item; 
  }else{ 
   $return_list[] = $base_site."/".$site_item; 
 } 
 } 
 return $return_list; 
} 
 
/*得到图片名字,并将其保存在指定位置*/ 
function get_pic_file($pic_url_array, $pos){ 
 $reg_tag = '/.*\/(.*&#63;)$/'; 
 $count = 0; 
 foreach($pic_url_array as $pic_item){ 
  $ret = preg_match_all($reg_tag,$pic_item,$t_pic_name); 
  $pic_name = $pos.$t_pic_name[1][0]; 
  $pic_url = $pic_item; 
 print("Downloading ".$pic_url." "); 
  $img_read_fd = fopen($pic_url,"r"); 
  $img_write_fd = fopen($pic_name,"w"); 
  $img_content = ""; 
  while(!feof($img_read_fd)){ 
   $img_content .= fread($img_read_fd,1024); 
   
  } 
  fwrite($img_write_fd,$img_content); 
  fclose($img_read_fd); 
  fclose($img_write_fd); 
  print("[OK] "); 
 } 
 return 0; 
} 
 
function main(){ 
/* 待抓取图片的网页地址 */ 
 $site_name = "http://www.jb51.net/sheying/391528.html"; 
 $img_url = get_img_url($site_name); 
 $img_url_revised = revise_site($img_url, $site_name); 
 $img_url_unique = array_unique($img_url_revised); //unique array 
 get_pic_file($img_url_unique,"./"); 
} 
 
main(); 
&#63;> 
로그인 후 복사

이 프로그램에서 아직 개선해야 할 점은 사진이 웹 사이트 서버의 다른 디렉터리에 있지만 파일 이름이 동일할 경우 이때는 사진이 다를 수 있지만 최종적으로 저장되면 사진이 다를 수 있다는 것입니다. , 나중에 얻은 사진은 이전에 저장된 사진을 덮어쓰게 됩니다. 해결책 파일 이름이 이미 저장되기 전에 현재 디렉터리에 있는지 검색하는 것입니다. 저장할 사진은 바로 그것입니다.

위 내용은 PHP로 웹사이트 이미지를 캡처하고 저장하는 방법과 실습 중 프로그램의 불완전성을 수정하는 방법을 공유하는 방법입니다. 이 글이 모든 분들의 학습에 도움이 되기를 바랍니다.

관련 라벨:
php
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
최신 이슈
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿