Je te conseil d'aller faire un petit tour sur le tuto du sdz sur les regex (ou sur la doc si tu préfère ). Tu pourras certainement y apprendre pas mal de trucs.
Bon là pour ton problème, en fait je crois que tu donnes la réponse en même temps sans le savoir!
preg_replace('/\[php\](.+?)\[\/php\]/', '$1', $chaine);
renvoie ce que vaut $1 (sachant que $1 c'est tout ce qui est entre parenthèse)
Donc pour ta question c'est simple tu l'as ecrit
$texte=preg_replace('/\[php\](.+?)\[\/php\]/', '$1', $chaine);
Pour aller un peu plus loin:
Si tu fait
preg_replace('/\[(php)\](.+?)\[\/php\]/', '$1', $chaine);
çà te renvoie "php" puisque c'est la première parenthèse
Et si tu fait
preg_replace('/\[(php)\](.+?)\[\/php\]/', '$2', $chaine);
Ca te renvoie ce qui est entre [ php ] et [ /php ] puisque c'est la seconde parenthèse
Donc si tu suis le raisonnement avec l'autre fonction preg_replace_callback:
Le ^ indiquant le début de la chaine le * indiquant n'importe quoi et le $ la fin de la chaineBon là pour ton problème, en fait je crois que tu donnes la réponse en même temps sans le savoir!
preg_replace('/\[php\](.+?)\[\/php\]/', '$1', $chaine);
renvoie ce que vaut $1 (sachant que $1 c'est tout ce qui est entre parenthèse)
Donc pour ta question c'est simple tu l'as ecrit
$texte=preg_replace('/\[php\](.+?)\[\/php\]/', '$1', $chaine);
Pour aller un peu plus loin:
Si tu fait
preg_replace('/\[(php)\](.+?)\[\/php\]/', '$1', $chaine);
çà te renvoie "php" puisque c'est la première parenthèse
Et si tu fait
preg_replace('/\[(php)\](.+?)\[\/php\]/', '$2', $chaine);
Ca te renvoie ce qui est entre [ php ] et [ /php ] puisque c'est la seconde parenthèse
Donc si tu suis le raisonnement avec l'autre fonction preg_replace_callback:
Code PHP :
<?php
$chaine="le texte avant[html]le texte dedans[/html]le texte après";
preg_replace_callback('/\[(html)\](.+?)\[\/html\]/', "parse", $chaine);
la fonction parse() recevra en argument un tableaux array('1'=>"html",3 => "le texte dedans")
Il te suffit donc d'appliquer l'objet Geshi qui correspond, c'est ce que fait la fonction parse :
Code PHP :
<?php
function parse($arg){
$convert=array('html'=>"html4strict",'php'=>'php');
$couleur =& new GeSHi($arg[2],$convert[$arg[1]]);
return $couleur->parse_code();
}