Création de sites web en éco-conception

03/05/2015 Préprocesseur CSS en PHP qui conserve les numéros de ligne

Dans un souci de débuggage, je voulais que les numéros de ligne du fichier CSS correspondent parfaitement à celles du fichier PHP.

J'ai développé une fonction qui intercepte le numéro de ligne de chaque ouverture de balises PHP et de chaque fermture. Elle calcule alors la taille du bloc de code PHP et remplace ce dernier par autant de lignes vides dans le fichier CSS.

<?= css_line(__LINE__) ?><?php function css_line($__LINE__) { $fichier_contient_balises_style = 1; static $ligne_debut = false; if ($ligne_debut === false) { // ouverture de balise PHP $ligne_debut = $__LINE__; } else { // fermeture de balise PHP $nb_lignes = $__LINE__ - $ligne_debut + $fichier_contient_balises_style; echo str_repeat("/* css_line */" . PHP_EOL, $nb_lignes); $ligne_debut = false; } return ""; } header('content-type: text/css'); $rouge="#f00"; ob_start(); ?><?= css_line(__LINE__) ?> <style> #v_middle { background-color:<?php echo $rouge ?>; } </style> <?php echo strip_tags(ob_get_clean());

Commentaires

Ajouter un commentaire :