Regex suppression de commentaires /* .... */ et //.....
Posté : 03 sept. 2019, 13:54
Bonjour à tous !
Tout est dans le titre... Je travaille à minifier certains fichiers de mon site (je n'utilise pas NPM et node.js pour des raisons de simplicité, mon site n'est pas très gros).
La minification intervient automatiquement lorsque j'ai modifié le fichier, mais je ne parviens pas à trouver le bon REGEX pour virer les commentaires : /*......*/ dans les fichiers CSS, et //..... dans les fichiers JS.
J'ai écrit ceci pour le moment :
Ça fonctionne, sauf la première ligne de la fonction Suppr_char avec le preg_replace (que j'ai trouvé sur internet ailleurs).
Quelqu'un a une piste ? Merci !
Tout est dans le titre... Je travaille à minifier certains fichiers de mon site (je n'utilise pas NPM et node.js pour des raisons de simplicité, mon site n'est pas très gros).
La minification intervient automatiquement lorsque j'ai modifié le fichier, mais je ne parviens pas à trouver le bon REGEX pour virer les commentaires : /*......*/ dans les fichiers CSS, et //..... dans les fichiers JS.
J'ai écrit ceci pour le moment :
Code : Tout sélectionner
function Suppr_char($texte)
{
$texte = preg_replace("#/\*(?s:.*?)\*/|^\s*//.*#m", "", $texte);
$texte = str_replace(array("\r\n", "\r", "\n", "\t", " "), "", $texte);
$texte = str_replace("{ ", "{", $texte);
$texte = str_replace(" }", "}", $texte);
$texte = str_replace('; ', ';', $texte);
$texte = str_replace(', ', ',', $texte);
$texte = str_replace(' {', '{', $texte);
$texte = str_replace('} ', '}', $texte);
$texte = str_replace(': ', ':', $texte);
$texte = str_replace(' ,', ',', $texte);
$texte = str_replace(' ;', ';', $texte);
return $texte;
}
function Minifier($fichier, $ext)
{
$contenu = @fopen("CSS/".$fichier.".".$ext, "r");
if($contenu)
{
while(($ligne = fgets($contenu, 4096)) !== false) $resultat .= Suppr_char($ligne);
fclose($contenu);
// Ecriture du fichier
$file = "CSS/".$fichier.".min.".$ext;
file_put_contents($file, $resultat);
}
else
{
error_log("[MINIFICATION] ERREUR");
}
}Ça fonctionne, sauf la première ligne de la fonction Suppr_char avec le preg_replace (que j'ai trouvé sur internet ailleurs).
Quelqu'un a une piste ? Merci !