使用PHP解析CSS文件

时间:2014-02-11 06:52:34

标签: javascript php jquery html css

我使用html dom解析器和ajax post在我的localhost中下载了css文件..

<?php
        require'simple_html_dom.php';
        $srcCode = $_POST['doc'];       
        $url=$_POST['Url'];             
        $url_path=$url; 
        $html = file_get_html('template/'.$name.'.html');
        if(!file_exists('template/css'))    
            {mkdir('template/css',0777, true);}     
        foreach($html->find('link') as $link)    
        {
                $linkpath=$link->href;
                $links = explode("/", $linkpath);   
                $linkName = end($links);
                file_put_contents('/template/css/'.$linkName,file_get_contents($url_path.$linkpath));   
        }
?>

现在我已经使用php读取了那些css文件。或者说我得到(dwnload)那些css的所有图像src ..

background: url(../images/interface.png) no-repeat -1px -680px;
border: 0 none;
color: #534a39;
font-size: 16px;
height: 52px;
line-height: 42px;
margin: 24px auto 25px;
width: 281px;
text-indent: 40px;

如何解析css元素?如何获取CSS内容?请帮帮我...

2 个答案:

答案 0 :(得分:1)

此代码正常工作

function parse($file){
    $css = file_get_contents($file);
    preg_match_all( '/(?ims)([a-z0-9\s\.\:#_\-@,]+)\{([^\}]*)\}/', $css, $arr);
    $result = array();
    foreach ($arr[0] as $i => $x){
        $selector = trim($arr[1][$i]);
        $rules = explode(';', trim($arr[2][$i]));
        $rules_arr = array();
        foreach ($rules as $strRule){
            if (!empty($strRule)){
                $rule = explode(":", $strRule);
                $rules_arr[trim($rule[0])] = trim($rule[1]);
            }
        }

        $selectors = explode(',', trim($selector));
        foreach ($selectors as $strSel){
            $result[$strSel] = $rules_arr;
        }
    }
    return $result;
}
$css = parse('filePath');

并使用此

$css['#selector']['color'];

答案 1 :(得分:0)


嗨,我写了简单的代码

 $yourRgx = '/images (\w+)/gi';
 $contentFile = file_get_contents('file.css');

 preg_match_all($yourRgx, $contentFile, $result);
 print_r($result);
像这样的逻辑:

1-创建正则表达式或文本(“images /”)或/ images(\ w +)/ gi

2-使用@file_get_contents

打开文件

3-使用php preg_match_all()函数并搜索所有文本