ホームページ > php教程 > php手册 > php实现的CSS更新类实例,phpcss更新实例

php实现的CSS更新类实例,phpcss更新实例

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
リリース: 2016-06-13 09:25:01
オリジナル
1060 人が閲覧しました

php实现的CSS更新类实例,phpcss更新实例

本文实例讲述了php实现的CSS更新类及其用法,非常实用。分享给大家供大家参考。具体如下:

CSSUpdate.class.php类文件如下:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

71

72

73

74

75

76

77

78

79

80

81

82

83

84

85

86

87

88

89

90

91

92

93

94

95

96

97

98

99

100

101

102

103

104

105

106

<&#63;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."&#63;".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>";

  }

}

&#63;>

ログイン後にコピー

demo示例程序如下:

1

2

3

4

5

6

7

8

9

10

11

<&#63;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();

&#63;>

ログイン後にコピー

完整源码点击此处本站下载。

希望本文所述对大家PHP程序设计的学习有所帮助。

PHP通过css改变显示内容,答案正确另加50

我用javascript完成的
============ first.html ===========



first.html<br><br>







============ second.html ==================



second.html<br><style type="text/css"><br />.type1 h1 {<br /> color:#f00;<br />}<br />.type1 p {<br /> color:#0f0;<br />}<br />.type2 h1 {<br /> color:#ffff00;<br />}<br />.type2 p {<br /> color:#00ffff;<br />}<br />.type3 h1 {<br /> color:#ff00ff;<br />}<br />.type3 p {<br /> color:#ff00ff;<br />}<br /></style><br /></head><br /><body><br /><div id="wrap"><br /> <script type="text/javascript" language="javascript"><br />function QueryString(item){<br /> var sValue=location.search.match(new RegExp("[\?\&]"+item+"=([^\&]*)(\&?)","i"))<br /> return sValue?sValue[1]:sValue<br />}<br />var csstype=QueryString('csstype');<br />var wrap=document.getElementById("wrap")<br />switch(csstype)<br />{<br /> case "2":<br /> wrap.className="type2";<br /> break;<br /> case "3":<br /> wrap.className="type3";<br /> break;<br /> default:<br /> wrap.className="type1";<br />}<br /></script><br /> <h1>标题</h1><br /> <p>正文正文正文<......余下全文>><br/>   <p class="header2"><span class="icon i-relatedanswer"><h3>php 怎可以动态获取css里面的数据,例如:动态的改变宽度与高度<p class="best-replyer"> <p class="ft p1">这个应该是在html页面需要用javascript来获取的啊,你服务器语言怎么去获取人家浏览器里运行的html页面的css。<br /><div id="test" style="background-color: red;"></div><br /><script type="text/javascript"><br />document.write(document.getElementById( "#test" ).style.backgroundColor);<br /></script><br />应该是像这样获取的,如果你服务器硬是需要这些信息,就用ajax或者表单再传回给服务器的php页面<br/>   </style>
関連ラベル:
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
PHP 拡張子 intl
から 1970-01-01 08:00:00
0
0
0
phpのデータ取得?
から 1970-01-01 08:00:00
0
0
0
PHP GET エラー レポート
から 1970-01-01 08:00:00
0
0
0
phpを上手に学ぶ方法
から 1970-01-01 08:00:00
0
0
0
人気のおすすめ
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート