(PECL bbcode >= 0.10.2)
bbcode_set_flags — パーサのオプションを設定あるいは変更する
パーサのオプションを設定あるいは変更します。
bbcode_create() が返す BBCode_Container リソース。
bbcode_container オプションに適用するフラグのセット。
BBCODE_SET_FLAGS_* 定数のいずれか。 指定したフラグを設定する、あるいは解除する、あるいは置き換えるのいずれかを指定します。
成功した場合に TRUE を、失敗した場合に FALSE を返します。
例1 bbcode_set_flags() の使用例
<?php
/*
 * ルールセットを準備します
 */
$arrayBBCode=array(
    'b'=>        array('type'=>BBCODE_TYPE_NOARG, 
                       'open_tag'=>'<b>', 'close_tag'=>'</b>'),
    'u'=>        array('type'=>BBCODE_TYPE_NOARG, 
                       'open_tag'=>'<u>', 'close_tag'=>'</u>'),
    'i'=>        array('type'=>BBCODE_TYPE_NOARG, 
                       'open_tag'=>'<i>', 'close_tag'=>'</i>'),
);
/*
 * 入れ子構造が間違っている BBCode
 */
$text="[i] Parser [b] Auto Correction [/i] at work [/b]\n";
$BBHandler=bbcode_create($arrayBBCode);
echo bbcode_parse($BBHandler,$text);
// 閉じた要素を自動的に再開させます
bbcode_set_flags($BBHandler,BBCODE_CORRECT_REOPEN_TAGS, 
                 BBCODE_SET_FLAGS_SET);
echo bbcode_parse($BBHandler,$text);
/*
 * 入れ子構造が間違っており、閉じタグが足りない BBCode 
 */
$text="[i] Parser [b] Auto Correction [/i] at work\n";
echo bbcode_parse($BBHandler,$text);
// 閉じていないタグを自動的に終了させます
bbcode_set_flags($BBHandler,
                 BBCODE_CORRECT_REOPEN_TAGS|BBCODE_AUTO_CORRECT, 
                 BBCODE_SET_FLAGS_SET);
echo bbcode_parse($BBHandler,$text);
?>
上の例の出力は以下となります。
<i> Parser <b> Auto Correction </b></i> at work <i> Parser <b> Auto Correction </b></i><b> at work </b> <i> Parser [b] Auto Correction </i> at work <i> Parser <b> Auto Correction </b></i><b> at work </b>