bbcode_set_arg_parser

(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

Açıklama

bbcode_set_arg_parser ( resource $bbcode_havuzu , resource $bbcode_degistirge_havuzu ) : bool

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.

Değiştirgeler

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ğı.

Dönen Değerler

Başarı durumunda TRUE, başarısızlık durumunda FALSE döner.

Örnekler

Ö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_QUOTEBBCODE_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_QUOTEBBCODE_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=":)" />