bbcode_set_flags

(PECL bbcode >= 0.10.2)

bbcode_set_flagsパーサのオプションを設定あるいは変更する

説明

bbcode_set_flags ( resource $bbcode_container , int $flags [, int $mode = BBCODE_SET_FLAGS_SET ] ) : bool

パーサのオプションを設定あるいは変更します。

パラメータ

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>