(PECL bbcode >= 0.10.2)
bbcode_add_smiley — 顔文字をパーサに追加する
$bbcode_container
, string $smiley
, string $replace_by
)顔文字をパーサに追加します。
bbcode_container
bbcode_create() が返す BBCode_Container リソース。
smiley
見つかった場合に置換の対象となる文字列。
replace_by
顔文字が見つかった場合にそれを置換する文字列。
成功した場合に TRUE
を、失敗した場合に FALSE
を返します。
例1 bbcode_add_smiley() の使用例
<?php
/*
* ルールを設定します
*/
$arrayBBCode=array(
''=> array('type'=>BBCODE_TYPE_ROOT,
'childs'=>'!i'),
'b'=> array('type'=>BBCODE_TYPE_NOARG,
'open_tag'=>'<b>',
'close_tag'=>'</b>'),
'u'=> array('type'=>BBCODE_TYPE_NOARG,
'open_tag'=>'<u>',
'close_tag'=>'</u>',
'flags'=>BBCODE_FLAGS_SMILEYS_OFF),
'i'=> array('type'=>BBCODE_TYPE_NOARG,
'open_tag'=>'<i>',
'close_tag'=>'</i>',
'childs'=>'b'),
);
/*
* パースするテキスト
*/
$text=<<<EOF
[i] No parse Test [/i] :)
[b] Parsed, with smiley :( [/b]
[u] Parsed, with no smiley :D [/u]
EOF;
/*
* パーサを初期化します
*/
$BBHandler=bbcode_create($arrayBBCode);
/*
* 顔文字のルールをパーサに追加します
*/
bbcode_add_smiley($BBHandler, ":)", "<img src=\"smiley.gif\" alt=\":)\" />");
bbcode_add_smiley($BBHandler, ":(", "<img src=\"sad.gif\" alt=\":(\" />");
bbcode_add_smiley($BBHandler, ":D", "<img src=\"happy.gif\" alt=\":D\" />");
bbcode_add_smiley($BBHandler, ":p", "<img src=\"tong.gif\" alt=\":p\" />");
bbcode_add_smiley($BBHandler, ":|", "<img src=\"special.gif\" alt=\":|\" />");
bbcode_add_smiley($BBHandler, ":6:", "<img src=\"six.gif\" alt=\":6:\" />");
/*
* テキストをパースします
*/
echo bbcode_parse($BBHandler,$text);
?>
上の例の出力は以下となります。
<i> No parse Test </i> <img src="smiley.gif" alt=":)" /> <b> Parsed, with smiley <img src="sad.gif" alt=":(" /> </b> <u> Parsed, with no smiley :D </u>