Je viens vers vous car j'ai trouvé cet exemple sur le site officiel qui fonctionne très bien mais j'aimerais juste comprendre comment le résultat est renvoyé puisque la fonction de callback est rappelée à chaque fois... Pour moi c'est sensé faire une boucle infinie!
Code : Tout sélectionner
<?php
$input = "plain [indent] deep [indent] deeper [/indent] deep [/indent] plain";
function parseTagsRecursive($input)
{
$regex = '#\[indent]((?:[^[]|\[(?!/?indent])|(?R))+)\[/indent]#';
if (is_array($input)) {
$input = '<div style="margin-left: 10px">'.$input[1].'</div>';
}
return preg_replace_callback($regex, 'parseTagsRecursive', $input);
}
$output = parseTagsRecursive($input);
echo $output;
?>