-
-
/**
- *@阿唐 2013-4-6 22:19
- *@呵呵
- */
- set_time_limit(0);
- error_reporting(E_ERROR);
- if( $argcprint_r('
- ----------------------------------- --------------
- Usage: php '.$argv[0].' css路徑類型(0為遠端、1為本地) css檔案路徑圖片儲存目錄
- Example:
- php.exe '.$argv[0].' 0 http://www.xxx.com/index.css images
- --------------- ----------------------------------
- ');
- exit();
- }
- //遠端css
- if($argv[1]==0){
- $host = getParse($argv[2],'host');
- $savePath = getSavePath( $argv[3]);
- $images = getCssImagesArray($argv[2]);
- //print_r($images);
- $imagesurls = getImagesLinks($images,$argv[2]) ;
- imagesDowner($imagesurls);
- }
- //本地css開始
- if($argv[1]==1){
- //懶得寫了,呵呵,這個沒多大意義
- }
- /*
- * css圖片分析函數
- * $csspath css檔路徑
- */
- function getCssImagesArray($csspath){
- $gets = file_filep_File ($csspath);
- $images = array();
- preg_match_all("|url((. ))|i",$cssFile,$images);
- $images = $images[1] ;
- return $images;
- }
- /*
- * css檔案相對目錄處理函數
- * $path 路徑
- */
- function getNocssPath($path){ global $host;
- $tempLinkmages='';
- //相當路徑取得
- $tempPath = explode('/',$path);
- for($i=1;$ i $tempLinkmages .= $tempPath[$i].'/';
- }
- $xdImage = $host.$tempLinkmages;
- return $xdImage;
- //相當路徑獲取
- }
-
- /*
- * 圖片連接取得函數
- * $images array 所有需要取得的images數組
- * cssLink css檔案連結
- */
- function getImagesLinks($imagesArray,$cssLink){
- global $host;
- $urlImages = array(); foreach($imayray as $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 $urlI>}
- }
- }
- return $urlI>}
- };
-
- /*
- * 圖片取得
- * $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)){
- return true;
- }else{
- return 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 = 目錄名(__FILE__).$savePath;
- 回傳$savePath;
- }
- /*
- * 解析url
- */
- function getParse($host,$type) {
- $baseurl = parse_url($host);
- 回傳$baseurl[$type].'/';
-
- //echo $baseurl;
- }
?>
複製程式碼
|