코드 복사 코드는 다음과 같습니다.
/*
작성자: ssh_kobe
날짜: 20110602
부족: 웹 페이지의 이미지 경로가 절대 경로가 아닌 경우 크롤링할 수 없습니다
*/
set_time_limit(0);//크롤링은 시간 제한이 없습니다
$URL='http:/ /pp.baidu.com/';//모든 URL
get_pic($URL)
function get_pic($pic_url) {
//이미지 바이너리 스트림 가져오기
$data=CurlGet($ pic_url);
/*정규식을 사용하여 이미지 링크 가져오기*/
$pattern_src = '/<[img|IMG].*?src=['|" ](.*?(?:[ .gif|.jpg]))['|"].*?[/]?>/';
$num = preg_match_all($pattern_src, $data, $match_src );
$arr_src=$ match_src[1];//이미지 배열 가져오기
get_name($arr_src)
echo "
finished!!!"
return 0;
}
/*사진 유형을 가져와 파일과 동일한 디렉토리에 저장*/
function get_name($pic_arr)
{
//사진 유형
$pattern_type = '/(/.(jpg|bmp |jpeg|gif|png))/';
foreach($pic_arr as $pic_item){//각 사진의 주소를 가져오는 루프
$num = preg_match_all( $pattern_type, $pic_item, $match_type);
$pic_name = get_unique().$match_type[1][0];//마이크로초 타임스탬프 이름 변경
//사진을 스트림 형식으로 저장
$write_fd = @fopen($pic_name ,"wb");
@fwrite($write_fd, CurlGet($pic_item))
@fclose($write_fd)
echo "[확인] ]..!";
}
return 0;
}
//마이크로초 시간을 통해 고유 ID 가져오기
function get_unique(){
list($msec, $sec) =expect(" ",microtime()) ;
return $sec.intval($msec*1000000);
}
//웹페이지 콘텐츠 캡처
function CurlGet($url){
$url=str_replace('&' ,'&',$url);
$curl = curl_init()
curl_setopt($curl, CURLOPT_URL, $url); , CURLOPT_HEADER, false);
/ /curl_setopt($curl, CURLOPT_REFERER,$url);
curl_setopt($curl, CURLOPT_USERAGENT, "Mozilla/4.0(호환; 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);
return $values; 🎜>}
?>
위 내용은 mysql 정규식의 내용을 포함하여 정규식을 통해 이미지를 로컬로 다운로드하기 위한 mysql 정규식 PHP 구현 코드를 소개한 것입니다. PHP 튜토리얼에 관심이 있는 친구들에게 도움이 되었으면 좋겠습니다.