bbcode_parse
bbcode_set_flags
Fonctions BBCode
PHP Manual

# 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: {PARAM}</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=":)" />

bbcode_parse
bbcode_set_flags
Fonctions BBCode
PHP Manual