Par contre, concernant ta portion de code, comme je n'ai pas envie de me disputer avec toi, je vais attendre que d'autres prennent le relais, on verra bien.
sinon moi je veux pas que ca mette les balises html de retour dans la balise code mais les balises basicode carrément : en fait je veux que ca parse rien dans la balise code excepté GeSHi mais ca je m'en chargerai de l'exception
voici ma fonction :
function basicode($variable){ global ${$variable};
/*************************************************
************* Parser BasiCode ***************
****************** Par php5 *******************
*************************************************/
// Liste des codes à détecter comme valides dans la balise {code} : $codes_geshi = "actionscript|csharp|matlab|qbasic|ada|mpasm|smarty|apache|css|nsis|sql|asm|delphi|objc|vbnet|asp|diff|oobas|vb|bash|d|oracle8|vhdl|caddcl|html4strict|pascal|visualfoxpro|cadlisp|java|perl|xml|c_mac|javascript|php-brief|c|lisp|php|cpp|python";
// Une fois les masques définis, on les parse en explorant l'array() grâce à foreach()
$nbr_parsages=0; // Pour compter le nombre de parsages BasiCode on initialise une variable à 0 foreach($masqueAS$regexp => $result){
if(${$variable} = @preg_replace($regexp, $result, ${$variable})){// Parsage en PCRE $nbr_parsages++; // On ajoute 1 à la variable une fois chaque parsages faits } else{
${$variable} = '<div class="bc_erreur">Une erreur est survenue pendant le parsage BasiCode !</div>'; break; } }
// On écrit en commentaire HTML le nombre de parsages :
echo'<!-- ' . $nbr_parsages . ' parsages de balises BasiCode ont été effectués pour générer ce message -->';
#### Ici on parse certaines balises qui requierts des fonctions avec preg_replace_callback() #### // Les flottants
${$variable} = preg_replace_callback('!\{flottant=((droite|gauche)+)\}(.+)\{/flottant\}+!isU', 'div_flottant', ${$variable}); // Coloration synthaxique des codes
${$variable} = preg_replace_callback('!\{code=(' . $codes_geshi . '+)\}(.+)\{/code\}+!isU', 'colore_code', ${$variable});
#### Parsage des smileys ####
${$variable} = smileys_parse(${$variable}); }
PS : le parser XML que j'ai c'est SABLOTRON et pas DIABLOTRON
Pour l'imbrication c'est un peu compliqué avec des regex. J'ai déjà testé avec le XSLT, et le problème vient du fait que la transformation n'est pas directement faite par PHP, par contre ce n'est rien de très compliqué. DOM XML est assez pratique, c'est d'ailleurs ce que j'ai gardé pour le (fumeux je sais) bbCode. Tu peux aller voir par exemple sur ce topic.
PS : Quand on parle d'utiliser ` au lieu de ! ça ne change rien à la regex hein, c'est juste que les assertions utilisent aussi le !
Nan, rien à voir Les ` et ! sont juste des délimiteurs, mais l'inconvénient du ! c'est d'être utilisé par certaines assertions, et donc elles ne pourront pas être utilisées dans les regex car le ! sera considéré comme la fin de ton masque. Mais va plutôt voir ici
[RegExp] Comment ne pas parser mes balises entre les balises {code} et {/code} ?
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
Web Developer