Example of CSS update class implemented in php_PHP tutorial

WBOY
Release: 2016-07-13 10:18:41
Original
906 people have browsed it

Instance of CSS update class implemented in php

The CSSUpdate.class.php class file is as follows:

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

/**css update class, update the version of the image 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 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); 

  } 

   

  /**Traverse 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){  // 需要遍历子文件夹 

            $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文件 

        return true; 

      } 

    } 

    return false; 

  } 

   

  /**Replace template content and write 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))){  // 生成目标路径 

      mkdir(dirname($dfile), 0755, true); 

    } 

    file_put_contents($dfile, $css_content, true); 

  } 

   

  /**output*/ 

  private function response($content){ 

    echo $content."
"; 

  } 

?>

demo示例程序如下:

1

2

3

4

5

6

7

8

9

10

11

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(); 

?>

1 2 3

4

6 7 8 9 10
11
<🎜>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();  ?> http://www.bkjia.com/PHPjc/882705.htmlwww.bkjia.comtruehttp://www.bkjia.com/PHPjc/882705.htmlTechArticlephp实现的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...
Related labels:
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template