par
@rthur » 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