bbcode_set_arg_parser
PCRE
BBCode 関数
PHP Manual

# bbcode_set_flags

(PECL bbcode >= 0.10.2)

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

### 説明

bool bbcode_set_flags ( resource `$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>

bbcode_set_arg_parser
PCRE
BBCode 関数
PHP Manual