I want to parse (in a special way) a CSS file with PHP.
Example:
cssfile.css
:
#stuff {
background-color: red;
}
#content.postclass-subcontent {
background-color: red;
}
#content2.postclass-subcontent2 {
background-color: red;
}
And I want that PHP returns me each class name that have the postclass in its name.
The result look like an array having in this example:
arrayentry1:
#content.postclass-subcontent
arrayentry2:
#content2.postclass-subcontent2
But I'm worse at regular expressions. somehow search for "postclass" and then grap the hole line and put into an array.
thank you and i used it to parse a css file simliar to a confic file.
$(function () {
$.get('main.css', function (data) {
data = data.match(/(#[a-z0-9]*?\ .?postclass.*?)\s?\{/g);
if (data) {
$.each(data, function (index, value) {
value = value.substring(0, value.length - 2);
$(value.split(' .')[0]).wrapInner('<div class="' + value.split('.')[1] + '" />');
});
}
});
});
was my final code. so i can wrap easily a div around some hardcode-html without editing the layout. so i just have to edit my cssfile and add there something like
and my code searchs for the id and wraps the inner content with an div. i needed that for quickfixes when i just have to add a div around something for a clear or a background.
There is a very good CSS parser class in PHP. Use it. Here is its sample code:
<?php
include("cssparser.php");
$css = new cssparser();
$css->ParseStr("b {font-weight: bold; color: #777777;} b.test{text-decoration: underline;}");
echo $css->Get("b","color"); // returns #777777
echo $css->Get("b.test","color");// returns #777777
echo $css->Get(".test","color"); // returns an empty string
?>
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With