本文实例讲述了php实现的CSS更新类及其用法,非常实用。分享给大家供大家参考。具体如下:
CSSUpdate.class.php类文件如下:
<?php /** css 更新类,更新css文件内图片的版本 * Date: 2013-02-05 * Author: fdipzone * Ver: 1.1 * * Func: * update(); * * Ver: 1.1 增加search_child参数,可遍历子文件夹 */ 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; /** 初始化 * @param String $csstmpl_path css模版路径 * @param String $css_path css目标路径 * @param Array $replacetags 需要替换的图片类型 * @param boolean $search_child 是否遍历子文件夹,默认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; } } /** 更新css文件 */ 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); } /** 遍历文件夹 * @param String $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){ // 需要遍历子文件夹 $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); } /** 检查文件后缀 */ private function checkExt($file){ $name = basename($file); $namefrag = explode('.', $name); if(count($namefrag)>=2){ if(strtolower($namefrag[count($namefrag)-1])=='css'){ // css文件 return true; } } return false; } /** 替换模版内容,写入csspath * @param String $tmplfile 模版文件 * @param String $dfile 目标文件 */ 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))){ // 生成目标路径 mkdir(dirname($dfile), 0755, true); } file_put_contents($dfile, $css_content, true); } /** 输出 */ private function response($content){ echo $content."<br>"; } } ?>
demo示例程序如下:
<?php require_once "CSSUpdate.class.php"; 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(); ?>
完整源码点击此处本站下载。
希望本文所述对大家PHP程序设计的学习有所帮助。
我用javascript完成的
============ first.html ===========
100db36a723c770d327fc0aef2ce13b1
93f0f5c25f18dab9d176bd4f6de5d30e
b2386ffb911b14667cb8f0f91ea547a7first.html6e916e0f7d1e588d4f442bf645aedb2f
9c3bca370b5104690d9ef395f2c5f8d1
6c04bd5ca3fcae76e30b72ad730ca86d
fdf0dcbb529fd40801077fb835f94ea9
129a97a09d1093514a5c6a16c571ec35
4038f1f98b5f6ac3eb7927809d4e64ea
f5a47148e367a6035fd7a2faa965022e
36cc49f0c466276486e50c850b7e4956
73a6ac4ed44ffec12cee46588e518a5e
============ second.html ==================
100db36a723c770d327fc0aef2ce13b1
93f0f5c25f18dab9d176bd4f6de5d30e
b2386ffb911b14667cb8f0f91ea547a7second.html6e916e0f7d1e588d4f442bf645aedb2f
080b747a20f9163200dd0a7d304ba388
.type1 h1 {
color:#f00;
}
.type1 p {
color:#0f0;
}
.type2 h1 {
color:#ffff00;
}
.type2 p {
color:#00ffff;
}
.type3 h1 {
color:#ff00ff;
}
.type3 p {
color:#ff00ff;
}
531ac245ce3e4fe3d50054a55f265927
9c3bca370b5104690d9ef395f2c5f8d1
6c04bd5ca3fcae76e30b72ad730ca86d
c51f4459fcf422a08b11ee79272896f5
5422df206eb2e126a16ea38dcc1dc9ed
function QueryString(item){
var sValue=location.search.match(new RegExp("[\?\&]" item "=([^\&]*)(\&?)","i"))
return sValue?sValue[1]:sValue
}
var csstype=QueryString('csstype');
var wrap=document.getElementById("wrap")
switch(csstype)
{
case "2":
wrap.className="type2";
break;
case "3":
wrap.className="type3";
break;
default:
wrap.className="type1";
}
2cacc6d41bbb37262a98f745aa00fbf0
4a249f0d628e2318394fd9b75b4636b1标题473f0a7621bec819994bb5020d29372a
e388a4556c0f65e1904146cc1a846bee正文正文正文<......余下全文>>
这个应该是在html页面需要用javascript来获取的啊,你服务器语言怎么去获取人家浏览器里运行的html页面的css。
0df5f28bebd387ffacf3c41cd01196e516b28748ea4df4d9c2150843fecfba68
4ec11beb6c39d0703d1751d203c17053
document.write(document.getElementById( "#test" ).style.backgroundColor);
2cacc6d41bbb37262a98f745aa00fbf0
应该是像这样获取的,如果你服务器硬是需要这些信息,就用ajax或者表单再传回给服务器的php页面