我使用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内容?请帮帮我...
答案 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()函数并搜索所有文本