php implementation of css file background picture downloader code

  • 2021-07-26 07:04:44
  • OfStack

This article describes the example of php implementation of css file background picture downloader code. Share it for your reference. The specific implementation method is as follows:

Downloading the background pictures in css files is something that we pirates have been doing for a long time. Downloading an css picture downloader often appears various advertisement pop-ups, which is really unbearable. Here we provide an php version of css file background picture downloader for everyone.

Put the file under the php program directory dos php. exe cssImages. php 0 http://www. xxxx. com/css/style. css\ images\

First, build an images folder in the php program directory, hehe, paste the code:

<?php    
/**  
*@ A Tang 2013-4-6 22:19   
*@ Hehe   
*/   
set_time_limit(0);   
error_reporting(E_ERROR);   
if($argc<4){   
print_r('   
 +-------------------------------------------------+   
Usage: php '.$argv[0].' css Path type (0 For remote, 1 For local ) css File path Picture save directory    
Example:    
php.exe '.$argv[0].' 0 http://www.xxx.com/index.css \images\   
 +-------------------------------------------------+   
');   
exit();   
}   
// Remote 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);   
}   
// Local css Begin    
if($argv[1]==1){   
    // Too lazy to write, hehe, this doesn't make much sense    
}   
/*  
 * css Picture analysis function   
 * $csspath  css File path   
 */   
function getCssImagesArray($csspath){   
    $cssFile = file_get_contents($csspath);   
    $images = array();   
    preg_match_all("|url\((.+)\)|i",$cssFile,$images);   
    $images = $images[1];   
    return $images;   
}   
/*  
 * css File relative directory handler   
 * $path Path   
 */   
function getNocssPath($path){   
    global $host;   
    $tempLinkmages='';   
    // Equivalent path acquisition    
    $tempPath = explode('/',$path);   
    for($i=1;$i<(count($tempPath)-2);$i++){   
        $tempLinkmages .= $tempPath[$i].'/';   
    }   
    $xdImage = $host.$tempLinkmages;   
    return $xdImage;   
    // Equivalent path acquisition    
}   
   
/*  
 * Picture connection acquisition function   
 * $images array All the things you need to get images Array   
 * cssLink css File link   
 */   
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;   
}   
   
/*  
 * Picture acquisition   
 * $urlImages Array of pictures to download   
 */   
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]).' File Download Successfully    
');   
        }else{   
            print_r(   
basename($urlImagesOk[$key]).'  Download failed    
');   
        }   
    }   
    //print_r($urlImagesOk);   
}   
/*  
 * Relative path absolute path decision function   
 * $imageUrl Picture link array   
 * true Is an absolute path   
 * false Is an equivalent path   
 */   
function pathCheck($imageUrl){   
    if(preg_match('|^(\/)|',$imageUrl)){   
        return true;   
    }else{   
        return false;   
    }   
}   
   
/*  
 * Picture download function   
 * $url Picture link   
 * $filename Picture name   
 */   
function grabImage($url, $filename){   
    global $savePath;    
    if($url == '') {   
        return false; // If $url If it is empty, return false;   
           
    }   
    $ext_name = strrchr($url, '.'); // Get the extension of the picture    
    if($ext_name != '.gif' && $ext_name != '.jpg' && $ext_name != '.bmp' && $ext_name != '.png') {   
        return false; // Format is not allowed    
           
    }   
    if($filename == '') {   
        return false; // Invalid name    
           
    }   
    // Start capturing    
    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);   
        return true;   
    }   
}   
/*  
 * Save directory   
 */   
function getSavePath($savepath){   
    $savePath = $savepath;   
    $savePath = dirname(__FILE__).$savePath;   
    return $savePath;   
}   
/*  
 * Analyse url  
 */   
function getParse($host,$type){   
    $baseurl = parse_url($host);   
    return $baseurl[$type].'/';   
   
//echo $baseurl;   
}   
?>

I hope this article is helpful to everyone's PHP programming.


Related articles: