ilumin
ilumin

Reputation: 608

PHP replace CSS in HTML tags

does anyone has an idea about replace css styles into style attribute on html tags example you have css file, html file

css:

#example { color: #CCC; font-weight: bold; }

html:

<div id="example">Example</div>

and you will have this when you run php

<div style="color: #CCC; font-weight: bold;">Example</div>

why oh why :)
some work need inline styles for some system that doesn't support <link>, <style> or script tags
example:
E-mail template (all of you can not insert <link>, <style>, <script> inside the email right ?),
or build HTML for insert in another system (product detail in amazon.com, ...)

Upvotes: 2

Views: 693

Answers (2)

sepehr
sepehr

Reputation: 18445

You probably need to use a DOM parser, take a look at SimpleHTMLDom. Here's an example:

// Assuming that it's an array of styles
// keyed by HTML element IDs or classes.
// @see http://www.google.com/search?q=php+css+parser
$styles = some_php_css_parser('example.css');

// Create a DOM object
$html = new simple_html_dom();

// Load HTML from a HTML file, 
// there are also other options, @see API.
$html->load_file('test.htm');

// Walk through the target elements.
foreach ($html->find('blah') as $element) {
    $element->style = $styles[$element->id];
}

// Cache and output...

Also you need to consider caching the output, otherwise I also say so, but why oh why!

Upvotes: 3

user557846
user557846

Reputation:

explode the css file, extract the attribute\css, str_replace the attribute with the css in the html, but why oh why.

Upvotes: 0

Related Questions