This article describes the CSS update class implemented by php and its usage, which is very practical. Share it for your reference. The details are as follows:
The class files are as follows:
<?php /** css update class, update the version of the picture in the css file * Date: 2013-02-05 * Author: fdipzone * Ver: 1.1 * * Func: * update(); * * Ver: 1.1 Add search_child parameter to traverse subfolders */ class CSSUpdate{ private $csstmpl_path = null; private $css_path = null; private $replacetags = array(); private $search_child = false; private $convert_num = 0; private $is_ready = 0; /** Initialization * @param String $csstmpl_path css template path * @param String $css_path css target path * @param Array $replacetags The type of image that needs to be replaced * @param boolean $search_child Whether to traverse subfolders, default false */ public function __construct($csstmpl_path, $css_path, $replacetags=array(), $search_child=false){ if(!is_dir($csstmpl_path) || !is_dir($css_path) || !$replacetags){ $this->is_ready = 0; }else{ $this->csstmpl_path = $csstmpl_path; $this->css_path = $css_path; $this->replacetags = $replacetags; $this->search_child = $search_child; $this->is_ready = 1; } } /** Update css file */ public function update(){ if($this->is_ready==0){ $this->response('csstmpl or csspath or replacetags error'); return ''; } $this->traversing($this->csstmpl_path); $this->response('covert num:'.$this->convert_num); } /** traversal folders * @param String $path file path */ private function traversing($path){ $handle = opendir($path); while(($file=readdir($handle))!==false){ if($file!='..' && $file!='.'){ $curfile = $path.'/'.$file; if(is_dir($curfile)){ // folder if($this->search_child){ // Requires traversal of subfolders $this->traversing($curfile); } }elseif($this->checkExt($curfile)){ // css file $dfile = str_replace($this->csstmpl_path, $this->css_path, $curfile); $this->create($curfile, $dfile); $this->response($curfile.' convert to '.$dfile.' success'); $this->convert_num ++; } } } closedir($handle); } /** Check file suffix */ private function checkExt($file){ $name = basename($file); $namefrag = explode('.', $name); if(count($namefrag)>=2){ if(strtolower($namefrag[count($namefrag)-1])=='css'){ // css file return true; } } return false; } /** Replace the template content and write to csspath * @param String $tmplfile template file * @param String $dfile target file */ private function create($tmplfile, $dfile){ $css_content = file_get_contents($tmplfile); foreach($this->replacetags as $tag){ $css_content = str_replace($tag, $tag."?".date('YmdHis'), $css_content); } if(!is_dir(dirname($dfile))){ // Generate target path mkdir(dirname($dfile), 0755, true); } file_put_contents($dfile, $css_content, true); } /** Output */ private function response($content){ echo $content."<br>"; } } ?>
The demo sample program is as follows:
<?php require_once ""; define('ROOT_PATH', dirname(__FILE__)); $css_path = ROOT_PATH.'/css'; $csstmpl_path = ROOT_PATH.'/csstmpl'; $replacetags = array('.png', '.jpg', '.gif'); $cssobj = new CSSUpdate($csstmpl_path, $css_path, $replacetags); $cssobj->update(); ?>
Click here for the full source codeDownload this site。
I hope this article will be helpful to everyone's learning PHP programming.