Décomposer une chaîne html avec preg_replace
Bonjour à tous,
J'ai une chaîne html avec la structure suivante: "<h3>Un titre</h3><p class='home'><img src='fichier' /></p><p>du texte</p>"
Je veux décomposer cette chaîne en extrayant séparément:
- le titre h3
- l'image
- le reste du texte (un ou plusieurs paragraphes)
Code:
1 2 3 4 5 6 7 8
| $tmp = file_get_contents(PAGE_NAME);
$pattern = "#<h3>(.+)</h3>#Usi";
$_POST['contentTitle'] = preg_replace($pattern, '$1', $tmp);
$pattern = "#<p class='home'>(.+)</p>Usi#";
$img = preg_replace($pattern, '$1', $tmp));
var_dump($img);
$pattern = "#<p>(.+)</p>#si";
$_POST['content'] = preg_replace($pattern, '$1', $tmp); |
Avec le code qui précède, j'obtiens:
- pour $_POST['contentTitle']: Un titre<p class... jusqu'à la fin
- var_dump renvoie la totalité
- pour $_POST['content']: "<h3>Un titre</h3><p class='home'><img src='fichier' /></p>du texte
J'ai lu et relu et re-relu un cours sur les regex et je désespère de moi-même.:(