PHP来搜索css文件中的样式
可能重复:PHP来搜索css文件中的样式,php,css,regex,Php,Css,Regex,可能重复: 我希望能够搜索css文件,找到类或id,并带回它的样式 即。。css文件布局 body { margin:0; padding:0; } span { margin:0; padding:0; } #input { font:12px arial; } a { color:#0000FF; text-decoration:none; } .logout a:hover { text-decoration:underline; } 我想在文件中找到id“#input”,并将其
我希望能够搜索css文件,找到类或id,并带回它的样式 即。。css文件布局
body {
margin:0;
padding:0;
}
span {
margin:0;
padding:0;
} #input { font:12px arial; }
a { color:#0000FF;
text-decoration:none;
}
.logout a:hover { text-decoration:underline; }
我想在文件中找到id“#input”,并将其带回样式
font:12px arial;
或
#输入{font:12px arial;}
如果还有更多的话,把它带回来,但要保持这个小的像
我试过了,但运气不好,因为我的正则表达式不太好
if(file_exists("css/style.css") && filesize("css/style.css") > 0){
$filesize = filesize("css/style.css");
$handle = fopen("css/style.css", "r");
$contents = fread($handle, $filesize);
fclose($handle);
}
preg_match('@^(?:#input{)?([^}]+)@i', $contents, $matches);
echo "style: {$matches[0]} <br>";
print_r($matches2);
if(文件_存在(“css/style.css”)&&filesize(“css/style.css”)>0){
$filesize=filesize(“css/style.css”);
$handle=fopen(“css/style.css”,“r”);
$contents=fread($handle,$filesize);
fclose($handle);
}
preg#u match('@^(?:#输入{?)([^}]+)@i',$contents,$matches);
echo“样式:{$matches[0]}
”;
打印(匹配2美元);
请提供帮助。由于以下几个原因,您的特定正则表达式失败:
@^(?:#input{)?([^}]+)@i
标记表示主题的开始。由于您的^
CSS选择器不在正则表达式的开头,因此这将始终失败#输入{
- 其次,您用
将其标记为可选。因此正则表达式无论如何都会忽略查找(…)?
#输入
- 然后您也没有转义
{
- 而您实际的CSS在
和#input
之间包含一个空格,您的正则表达式没有考虑这个空格{
@(?:#input\s*\{)([^}]+)@i
有关一些有用的工具或更好的教程,请参见和。它只是将此正文带回{margin:0;padding:0;谢谢mario我想知道发生了什么,但不确定如何让它工作。但是谢谢它起作用了。好吧,那么我接下来如何找到say height并改变height的值,如果代码是height:20px;我想把20px改成10px,也就是说它是height:10px;但是值将根据搜索而不同,更改值也将根据其他内容而不同。使用
preg\u replace\u callback
查找{…}
块,然后使用第二个正则表达式height:\s*\d+px
和preg\u replace
查找宽度和高度。