-
- function make_dir($path){
- if(!file_exists($path)){//존재하지 않는 경우 생성
- $mk=@mkdir($path,0777); //권한
- @chmod($path,0777)
- }
- return true;
- 코드 복사
read_filetext() 함수는 이미지 콘텐츠를 가져옵니다.
fopen을 사용하여 이미지 파일을 연 다음 fread를 사용하여 이미지 파일 내용을 읽습니다.
function read_filetext($filepath){ $filepath=trim($filepath) $htmlfp= @fopen($filepath,"r"); //원격 if(strstr($filepath,"://")){ while($data=@fread($htmlfp,500000 )){ $string.=$data; } } //로컬 else{ $string=@fread($htmlfp,@filesize($filepath) ); } @fclose($htmlfp); return $string; }코드 복사 )는 파일을 쓰고 이미지 콘텐츠 fput을 파일에 씁니다. 즉, 이미지 파일을 저장합니다.
function write_filetext($filepath,$string){ //$string=stripSlashes($string) $fp=@fopen($filepath,"w"); @fputs($fp,$string) @fclose($fp) 코드 복사get_filename() 함수는 이미지 이름을 가져오고 저장할 파일 이름을 사용자 정의할 수도 있습니다.
function get_filename($filepath){ $fr=explode("/",$filepath) - $count=count($fr)-1;
- return $fr[$count];
- 코드 복사
여러 함수를 조합하여 save_pic() 함수에서 호출하고 마지막으로 저장된 사진 경로를 반환합니다.
function save_pic($url,$savepath=''){ //주소 처리 $url =trim($url); - $url=str_replace(" "," ",$url)
- //파일 읽기
- $string=read_filetext($url)
- if(비어 있음) ($string)){
- echo '파일을 읽을 수 없습니다';exit;
- }
- //파일 이름
- $filename = get_filename($url)
- //저장 디렉터리
- make_dir($savepath); //저장 디렉터리 생성
- //파일 주소
- $filepath = $savepath.$filename
- //파일 쓰기
- write_filetext($filepath,$string ) ;
- return $filepath;
- 코드 복사
- 마지막 단계에서 save_pic() 함수를 호출하여 사진을 저장합니다. 테스트를 위해 다음 코드를 사용하십시오.
//타겟 이미지 주소 $pic = "http://img0.pconline.com.cn/pconline /1205/06/2776119_end1_thumb.jpg"; //저장 디렉토리 $savepath = "images/"; - echo save_pic($pic,$savepath);
-
-
- 코드 복사
- 실제 적용 시 핫링크 방지 사진 수집을 비롯한 제품 정보 등 특정 사이트의 콘텐츠가 수집되어 해당 웹사이트의 서버에 저장될 수 있습니다.
이때 일반 매칭을 사용하여 페이지 내용을 일치시키고 페이지에서 일치하는 사진을 모두 찾은 다음 각각 웹사이트 서버에 다운로드하여 사진 모음을 완성할 수 있습니다.
테스트 예:
function get_pic($cont,$path){ $pattern_src = '/<[img|IMG] .*?src=['|"](.*?(?:[.gif|.jpg]))['|"].*?[/]?>/' $num = preg_match_all ($pattern_src, $cont, $match_src); $pic_arr = $match_src[1]; //그림 배열 가져오기- foreach ($pic_arr as $pic_item) { //각 항목의 주소를 가져오는 루프 picture
- save_pic($pic_item,$path); //사진을 다운로드하고 저장하세요
- echo "[OK]..!"
- }
- }
-
-
-
- 코드를 복사
-
-
- 한 후 페이지 내용을 분석하여 주요 내용을 파악하고 get_pic()을 호출하여 이미지를 저장합니다.
//PConline에서 휴대폰 관련 기사의 콘텐츠 페이지 사진 수집 $url = "http: / /gz.pconline.com.cn/321/3215791.html"; $content = file_get_contents($url);//웹 콘텐츠 가져오기- $preg = '#
(.*) #iUs';
- preg_match_all($preg, $content, $arr)
- $cont = $ arr[1][0];
- get_pic($cont,'img/')
-
-
-
- 코드 복사
-
위 코드는 작성자가 직접 테스트한 것이며 이미지 수집이 가능하지만 아직 고려되지 않은 몇 가지 시나리오가 있습니다. 다양한 수집 방지 방법을 만들어 놓았습니다. 직접 연구해 보세요.
|