-
- /**
- *@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 이미지
- -------------- ---------------------
- ');
- exit(); }
- //원격 CSS
- if($argv[1]==0){
- $host = getParse($argv[2],'host')
- $savePath = getSavePath( $argv[3]);
- $images = getCssImagesArray($argv[2]);
- //print_r($images)
- $imagesurls($images,$argv[2] ) ;
- ImagesDowner($imagesurls);
- }
- //로컬 CSS 시작
- if($argv[1]==1){
- //글을 쓰기엔 너무 게으릅니다. 하하. 말도 안 돼요
- }
- /*
- * CSS 이미지 분석 함수
- * $csspath CSS 파일 경로
- */
- function getCssImagesArray($csspath){
- $cssFile = file_get_contents($csspath);
- $images = array();
- preg_match_all("|url(. ))|i",$cssFile,$images); Images[1 ];
- return $images;
- }
- /*
- * CSS 파일 상대 디렉터리 처리 함수
- * $path 경로
- */
- function getNocssPath($ path){
- global $host;
- $tempLinkmages=''; =1; $i<(count($tempPath)-2);$i ){
- $tempLinkmages .= $tempPath[$i].'/'
- }
- $xdImage = $host .$tempLinkmages ;
- return $xdImage;
- //등가 경로 가져오기
- }
-
- /*
- * 이미지 연결 획득 기능
- * $images 배열 모든 이미지 배열
- * cssLink CSS 파일 링크
- */
- function getImagesLinks($imagesArray,$cssLink){
- global $host;
- $urlImages = array(); > foreach($imagesArray as $key=>$value){
- if(pathCheck($value)){
- if((!in_array(($host.$value),$urlImages))){
- $urlImages[ $key] = $host.$value;
- }
- }else{
- if((!in_array((getNocssPath(getParse($cssLink,'path'))).$ value),$urlImages) )){
- $urlImages[$key] = getNocssPath(getParse($cssLink,'path')).$value;
- }
- }
- }
- return $urlImages;
- }
-
- /*
- * 이미지 획득
- * $urlImages 다운로드할 이미지 배열
- */
- function ImagesDowner($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]).' 파일이 성공적으로 다운로드되었습니다.
- ')
- }else{
- print_r(
- basename( $urlImagesOk[$key]) .' 다운로드 실패
- ');
- }
- }
- //print_r($urlImagesOk)
- }
- /* 상대 경로 절대 경로 결정 함수
- * $imageUrl 이미지 링크 배열
- * true는 절대 경로
- * false는 등가 경로
- */
- function pathCheck($imageUrl){
- if(preg_match('|^(// )|',$imageUrl)){
- true를 반환합니다.
- }else{
- false를 반환합니다.
- }
- }
-
- /*
- * 이미지 다운로드 기능
- * $url 이미지 링크
- * $filename 이미지 이름
- */
- function GrabImage($url, $filename){
- global $savePath ;
- if($url == '') {
- return false; //$url이 비어 있으면 false를 반환합니다.
-
- }
- $ext_name = strrchr($url, ' .'); //이미지 이름의 확장자를 가져옵니다
- if($ext_name != '.gif' && $ext_name != '.jpg' && $ext_name != '.bmp' && $ext_name != ' .png') {
- return false; / /형식이 허용된 범위를 벗어났습니다.
-
- }
- if($filename == '') {
- return false; 이름이 잘못되었습니다
-
- }
- //캡처 시작
- ob_start()
- if(readfile($url)){
- $img_data = ob_get_contents()
- ob_end_clean ();
- $size = strlen($img_data);
- }else{
- ob_end_clean()
- return false;
- if(($local_file = fopen($savePath.$filename , 'a'))&&(fwrite($local_file, $img_data)))
- {
- fclose($local_file);
- true를 반환합니다.
- }
- }
- /*
- * 保存目录
- */
- function getSavePath($savepath){
- $savePath = $savepath;
- $savePath = dirname(__FILE__).$savePath;
- $savePath를 반환합니다.
- }
- /*
- * 解析url
- */
- function getParse($host,$type){
- $baseurl =parse_url($host);
- $baseurl[$type]을 반환합니다.'/';
-
- //echo $baseurl;
- }
- ?>
复主代码
|