(PECL bbcode >= 0.10.2)
bbcode_set_arg_parser — Özkaynağa, değiştirge çözümlemesi için farklı bir kural kümesi kullanan başka bir çözümleyici ekler
$bbcode_havuzu
, resource $bbcode_degistirge_havuzu
)bbcode_havuzuna başka bir çözümleyici ekler. Bu ikinci çözümleyici sadece değiştirge çözümlemesinde kullanılır. Eğer bu işlev kullanılmazsa, öntanımlı değiştirge çözümleyicisi, çözümleyicinin kendisidir.
bbcode_havuzu
bbcode_create() işlevinden dönen BBCode_Havuz özkaynağı.
bbcode_degistirge_havuzu
Sadece değiştirge çözümlemesi için kullanılacak olan, bbcode_create() işlevinden dönen BBCode_Havuz özkaynağı.
Başarı durumunda TRUE
, başarısızlık durumunda FALSE
döner.
Örnek 1 - bbcode_set_arg_parser() örneği
<?php
/*
* Ana cozumleyici icin kural kumesi
*/
$arrayBBCode=array(
'quote'=> array('type'=>BBCODE_TYPE_ARG,
'open_tag'=>'<quote><h4>Source: {PARAM}</h4>',
'close_tag'=>'</quote>',
'flags'=>BBCODE_FLAGS_REMOVE_IF_EMPTY|
BBCODE_FLAGS_ARG_PARSING),
'b'=> array('type'=>BBCODE_TYPE_NOARG,
'open_tag'=>'<b>', 'close_tag'=>'</b>',
'flags'=>BBCODE_FLAGS_REMOVE_IF_EMPTY),
'u'=> array('type'=>BBCODE_TYPE_NOARG,
'open_tag'=>'<u>', 'close_tag'=>'</u>',
'flags'=>BBCODE_FLAGS_SMILEYS_OFF |
BBCODE_FLAGS_REMOVE_IF_EMPTY |
BBCODE_FLAGS_SMILEYS_OFF),
'i'=> array('type'=>BBCODE_TYPE_NOARG,
'open_tag'=>'<i>', 'close_tag'=>'</i>',
'flags'=>BBCODE_FLAGS_REMOVE_IF_EMPTY),
);
/*
* Degistirge cozumleyicisi icin kural kumesi
*/
$arrayBBCode_arg=array(
'b'=> array('type'=>BBCODE_TYPE_NOARG,
'open_tag'=>'<b class="sub">', 'close_tag'=>'</b>',
'flags'=>BBCODE_FLAGS_REMOVE_IF_EMPTY),
'u'=> array('type'=>BBCODE_TYPE_NOARG,
'open_tag'=>'<u>', 'close_tag'=>'</u>',
'flags'=>BBCODE_FLAGS_SMILEYS_OFF |
BBCODE_FLAGS_REMOVE_IF_EMPTY |
BBCODE_FLAGS_SMILEYS_OFF),
'i'=> array('type'=>BBCODE_TYPE_NOARG,
'open_tag'=>'<i>', 'close_tag'=>'</i>',
'flags'=>BBCODE_FLAGS_REMOVE_IF_EMPTY),
);
/*
* Cozumleyecegimiz metin
*/
$text=<<<EOF
[quote="[b]Test[/b]"]
Foo :)
[/quote]
[b]Bar example :)[/b] :)
EOF;
/*
* Iki cozumleyiciyi baslatma
*/
$BBHandler=bbcode_create($arrayBBCode);
$BBArgHandler=bbcode_create($arrayBBCode_arg);
/*
* Cozumleyiciler uzerinde secenekleri ayarlama
*/
bbcode_set_flags($BBHandler,
BBCODE_CORRECT_REOPEN_TAGS|BBCODE_DEFAULT_SMILEYS_ON|
BBCODE_ARG_DOUBLE_QUOTE|BBCODE_ARG_SINGLE_QUOTE|
BBCODE_ARG_HTML_QUOTE, BBCODE_SET_FLAGS_SET);
bbcode_set_flags($BBArgHandler,
BBCODE_CORRECT_REOPEN_TAGS|BBCODE_DEFAULT_SMILEYS_ON|
BBCODE_ARG_DOUBLE_QUOTE|BBCODE_ARG_SINGLE_QUOTE|
BBCODE_ARG_HTML_QUOTE, BBCODE_SET_FLAGS_SET);
/*
* $BBArgHandler degiskenini, degistirge cozumleyicisi olarak atama
*/
bbcode_set_arg_parser($BBHandler,$BBArgHandler);
/*
* Ana cozumleyiciye gulen surat kurallari ekleme
*/
bbcode_add_smiley($BBHandler, ":)", "<img src=\"smiley.gif\" alt=\":)\" />");
/*
* Ana cozumleyiciye cozumlenecek metni verme
*/
echo bbcode_parse($BBHandler,$text);
?>
Yukarıdaki örneğin çıktısı:
<quote><h4>Source: <b class="sub">Test</b></h4> Foo <img src="smiley.gif" alt=":)" /> </quote> <b>Bar example :)</b> <img src="smiley.gif" alt=":)" />