bbcode_set_arg_parser
(PECL bbcode >= 0.10.2)
bbcode_set_arg_parser — Attache un analyseur pour gérer un autre jeu de règles
Description
bool bbcode_set_arg_parser
( resource
$bbcode_container
, resource $bbcode_arg_parser
)
Attache un autre analyseur à bbcode_container
.
Cet analyseur est utilisé uniquement lors que les arguments doivent être
analysés. Si cette fonction n'est pas utilisée, l'analyseur par défaut
est l'analyseur lui-même.
Liste de paramètres
-
bbcode_container
-
Ressource BBCode_Container, retournée par bbcode_create().
-
bbcode_arg_parser
-
Ressource BBCode_Container, retournée par bbcode_create().
Valeurs de retour
Cette fonction retourne TRUE
en cas de
succès ou FALSE
si une erreur survient.
Exemples
Exemple #1 Exemple avec bbcode_set_arg_parser()
<?php /* * Génération des règles de BBCode pour l'analyseur principal */ $arrayBBCode=array( 'quote'=> array('type'=>BBCODE_TYPE_ARG, 'open_tag'=>'<quote><h4>Source: </h4>', 'close_tag'=>'</quote>', 'flags'=>BBCODE_FLAGS_REMOVE_IF_EMPTY|BBCODE_FLAGS_ARG_PARSING), 'b'=> array('type'=>BBCODE_TYPE_NOARG, 'open_tag'=>'<b>', 'close_tag'=>'</b>', 'flags'=>BBCODE_FLAGS_REMOVE_IF_EMPTY), 'u'=> array('type'=>BBCODE_TYPE_NOARG, 'open_tag'=>'<u>', 'close_tag'=>'</u>', 'flags'=>BBCODE_FLAGS_SMILEYS_OFF | BBCODE_FLAGS_REMOVE_IF_EMPTY | BBCODE_FLAGS_SMILEYS_OFF), 'i'=> array('type'=>BBCODE_TYPE_NOARG, 'open_tag'=>'<i>', 'close_tag'=>'</i>', 'flags'=>BBCODE_FLAGS_REMOVE_IF_EMPTY), ); /* * Génération des règles de BBCode pour les arguments */ $arrayBBCode_arg=array( 'b'=> array('type'=>BBCODE_TYPE_NOARG, 'open_tag'=>'<b class="sub">', 'close_tag'=>'</b>', 'flags'=>BBCODE_FLAGS_REMOVE_IF_EMPTY), 'u'=> array('type'=>BBCODE_TYPE_NOARG, 'open_tag'=>'<u>', 'close_tag'=>'</u>', 'flags'=>BBCODE_FLAGS_SMILEYS_OFF | BBCODE_FLAGS_REMOVE_IF_EMPTY | BBCODE_FLAGS_SMILEYS_OFF), 'i'=> array('type'=>BBCODE_TYPE_NOARG, 'open_tag'=>'<i>', 'close_tag'=>'</i>', 'flags'=>BBCODE_FLAGS_REMOVE_IF_EMPTY), ); /* * Texte qui sera traité */ $text=<<<EOF [quote="[b]Test[/b]"] Foo :) [/quote] [b]Bar example :)[/b] :) EOF; /* * Initialisation des deux analyseurs BBcode */ $BBHandler=bbcode_create($arrayBBCode); $BBArgHandler=bbcode_create($arrayBBCode_arg); /* * Configuration des deux analyseurs */ bbcode_set_flags($BBHandler, BBCODE_CORRECT_REOPEN_TAGS|BBCODE_DEFAULT_SMILEYS_ON|BBCODE_ARG_DOUBLE_QUOTE| BBCODE_ARG_SINGLE_QUOTE|BBCODE_ARG_HTML_QUOTE,BBCODE_SET_FLAGS_SET); bbcode_set_flags($BBArgHandler, BBCODE_CORRECT_REOPEN_TAGS|BBCODE_DEFAULT_SMILEYS_ON|BBCODE_ARG_DOUBLE_QUOTE| BBCODE_ARG_SINGLE_QUOTE|BBCODE_ARG_HTML_QUOTE,BBCODE_SET_FLAGS_SET); /* * Configuration de $BBArgHandler comme analyseur d'arguments */ bbcode_set_arg_parser($BBHandler,$BBArgHandler); /* * Ajout de la gestion des émoticônes */ bbcode_add_smiley($BBHandler, ":)", "<img src=\"smiley.gif\" alt=\":)\" />"); /* * Utilisation de l'analyseur principal */ echo bbcode_parse($BBHandler,$text); ?>
L'exemple ci-dessus va afficher :
<quote><h4>Source: <b class="sub">Test</b></h4> Foo <img src="smiley.gif" alt=":)" /> </quote> <b>Bar example :)</b> <img src="smiley.gif" alt=":)" />