이 기사의 예에서는 PHP에서 구현된 CSS 파일 배경 이미지 다운로더 코드를 설명합니다. 참고할 수 있도록 모든 사람과 공유하세요. 구체적인 구현 방법은 다음과 같습니다.
CSS 파일의 배경 이미지를 다운로드하는 것은 우리 해적들이 오랫동안 해왔던 일입니다. CSS 이미지 다운로더를 다운로드할 때 다양한 광고 팝업이 자주 나타나는데, 이는 정말 참기 힘든 일입니다. 여기에서는 모든 사람에게 CSS 파일 배경 이미지 다운로더의 PHP 버전을 제공합니다.
php 프로그램 디렉토리 php.exe cssImages.php 0 http://www.xxxx.com/css/style.css 이미지의 dos 아래에 파일을 넣으세요
먼저 PHP 프로그램 디렉토리에 이미지 폴더를 생성하세요. 하하, 코드를 붙여넣으세요:
/**
*@ATANG 2013-4-6 22:19
*@헤헤
*/
set_time_limit(0)
error_reporting(E_ERROR)
if($argc<4){
print_r('
-------------------------------------
사용법: php '.$argv[0].' CSS 경로 유형(0은 원격, 1은 로컬) CSS 파일 경로 이미지 저장 디렉터리
예:
php.exe '.$argv[0].' 0 http://www.xxx.com/index.css 이미지
-------------------------------------
');
종료();
}
//원격 CSS
if($argv[1]==0){
$host = getParse($argv[2],'호스트')
$savePath = getSavePath($argv[3])
$images = getCssImagesArray($argv[2])
//print_r($이미지)
$imagesurls = getImagesLinks($images,$argv[2])
ImagesDowner($imagesurls)
}
//로컬 CSS 시작
if($argv[1]==1){
//글을 쓰기엔 너무 게으릅니다. 하하, 이건 말이 안 됩니다.
}
/*
* CSS 이미지 분석 기능
* $csspath CSS 파일 경로
*/
함수 getCssImagesArray($csspath){
$cssFile = file_get_contents($csspath)
$이미지 = 배열()
Preg_match_all("|url((. ))|i",$cssFile,$images)
$이미지 = $이미지[1]
$이미지 반환
}
/*
* CSS 파일 상대디렉토리 처리 기능
* $path 경로
*/
함수 getNocssPath($path){
글로벌 $호스트
$tempLinkmages=''
//등가 경로 얻기
$tempPath = 폭발('/',$path)
for($i=1;$i<(count($tempPath)-2);$i ){
$tempLinkmages .= $tempPath[$i].'/';
}
$xdImage = $host.$tempLinkmages
$xdImage 반환
//등가 경로 얻기
}
/*
* 이미지 연결 획득 기능
* $images 배열 얻어야 하는 모든 이미지 배열
* cssLink CSS 파일 링크
*/
함수 getImagesLinks($imagesArray,$cssLink){
글로벌 $호스트
$urlImages = 배열()
foreach($imagesArray as $key=>$value){
if(pathCheck($value)){
If((!in_array(($host.$value),$urlImages))){
$urlImages[$key] = $host.$value
~
~
If((!in_array((getNocssPath(getParse($cssLink,'path')).$value),$urlImages))){
$urlImages[$key] = getNocssPath(getParse($cssLink,'path')).$value;
~
~
}
$urlImages 반환
}
/*
* 이미지 획득
* $urlImages는 다운로드해야 하는 이미지의 배열
*/
함수 imageDowner($urlImages){
//print_r($urlImages)
foreach($urlImages as $key=>$value){
$urlImagesOk[$key] = str_replace('//','/',$value);
$urlImagesOk[$key] = str_replace('"','',$urlImagesOk[$key]);
$urlImagesOk[$key] = str_replace("'",'',$urlImagesOk[$key]);
$urlImagesOk[$key] = 'http://'.$urlImagesOk[$key];
If(grabImage($urlImagesOk[$key],basename($urlImagesOk[$key]))){
print_r(
basename($urlImagesOk[$key]).' 파일 다운로드 성공
');
~
print_r(
기본 이름($urlImagesOk[$key]).' 다운로드 실패
');
~
}
//print_r($urlImagesOk)
}
/*
* 상대경로 절대경로 결정 기능
* $imageUrl 이미지 링크 배열
* true는 절대 경로입니다
* false는 등가 경로입니다
*/
함수 pathCheck($imageUrl){
If(preg_match('|^(/)|',$imageUrl)){
true를 반환합니다.
}else{
false 반환;
}
}
/*
* 이미지 다운로드 기능
* $url 이미지 링크
* $filename 사진 이름
*/
함수 GrabImage($url, $filename){
글로벌 $savePath
If($url == '') {
return false; //$url이 비어 있으면 false를 반환합니다.
}
$ext_name = strrchr($url, '.'); //이미지 확장자를 가져옵니다
If($ext_name != '.gif' && $ext_name != '.jpg' && $ext_name != '.bmp' && $ext_name != '.png') {
false를 반환합니다. //형식이 허용되는 범위를 벗어났습니다.
}
If($filename == '') {
//이름이 잘못되었습니다.
}
//캡처 시작
Ob_start()
If(읽기파일($url)){
$img_data = ob_get_contents();
ob_end_clean();
$size = strlen($img_data);
}else{
Ob_end_clean()
거짓 반환
}
If(($local_file = fopen($savePath.$filename , 'a'))&&(fwrite($local_file, $img_data)))
{
fclose($local_file);
true를 반환합니다.
}
}
/*
* 저장 디렉토리
*/
함수 getSavePath($savepath){
$savePath = $savepath
$savePath = dirname(__FILE__).$savePath
$savePath 반환
}
/*
* URL 분석
*/
함수 getParse($host,$type){
$baseurl = pars_url($host)
$baseurl[$type].'/'을 반환합니다.
//에코 $baseurl
}
?>
이 기사가 모든 사람의 PHP 프로그래밍 설계에 도움이 되기를 바랍니다.