Oui, je sais, je sais, l'analyse HTML avec des expressions régulières est très mauvaise. Mais je travaille avec du code hérité supposé extraire tous les éléments link
et style
d'une page html. Je voudrais le changer et utiliser l'extension dom
à la place, mais après la regex il y a un énorme bloc de code qui repose sur la façon dont preg_match_all
renvoie les résultats correspondants.extraire des feuilles de style via regex
Le script utilise cette regex:
$pattern = '/<(link|style)(?=.+?(?:type="(text\/css)"|>))(?=.+?(?:media="(.*?)"|>))(?=.+?(?:href="(.*?)"|>))(?=.+?(?:rel="(.*?)"|>))[^>]+?\2[^>]+?(?:\/>|<\/style>)\s*/is';
preg_match_all($pattern, $htmlContent, $cssTags);
Mais cela ne fonctionne pas. Aucun élément ne correspond. Malheureusement, je craque vraiment pour regex, donc si quelqu'un pouvait m'aider, ce serait génial.
tous les matches sont utilisés? Je veux dire le type, les médias, etc.? – galambalazs
@galambalazs Oui, pour autant que je puisse voir c'est le cas. – Max
* Le bloc de code énorme * semble être un bon candidat pour un refactoring. Jetez-le pour une solution DOM appropriée. – Gordon