Administrateur PHPfrance |
9782 Messages
27 mai 2015, 12:04
Bonjour,
Oui c'est possible, avec des regex un peu évoluées...
Je commencerait par le plus simple à savoir le cas des balises vides :
<?php
$test="div[header[]nav[]div[section[]aside[]]footer[]]";
$balises_simples=preg_replace('`([a-z]+)\[\]`i', '<$1></$1>', $test);
var_dump($balises_simples);
//div[<header></header><nav></nav>div[<section></section><aside></aside>]<footer></footer>]
Puis les balises qui en incluent d'autres...
$balises_completes=preg_replace('`([a-z]+)\[([a-z<>\/]+)\]`i', '<$1>$2</$1>', $balises_simples);
var_dump($balises_completes); print "<hr />";
Par contre, il faut mettre cette deuxième fonction je pense dans une boucle pour qu'elle soit récursive jusqu'à temps qu'il n'y ait plus de tag inclus dans un tag
Quand tout le reste a échoué, lisez le mode d'emploi...