(PECL bbcode >= 0.10.2)
bbcode_set_flags — パーサのオプションを設定あるいは変更する
$bbcode_container
, int $flags
[, int $mode
= BBCODE_SET_FLAGS_SET
] )パーサのオプションを設定あるいは変更します。
bbcode_container
bbcode_create() が返す BBCode_Container リソース。
flags
bbcode_container オプションに適用するフラグのセット。
mode
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>