<?php
public static function settags($rawstring, $cat = null) {
$patterns = array(); $replace = array();
// misc
/* reflinks = a */$patterns[] = '/(>{2})(\d+)/'; $replace[] = '<a class="ref" rel="$2" href="'.$cat.'/post/$2">$0</a>';
/* quotes = q */$patterns[] = '/^(>{1})(.+)$/m'; $replace[] = '<q>$0</q>';
/* triforce */$patterns[] = '/^\/triforce$/m'; $replace[] = ' ▲\n▲ ▲\n';
// wakabamark
/* spoilers %% */$patterns[] = '/(%{2})(.+)\1/Us'; $replace[] = '<mark>$2</mark>';
/* striked ^^ */$patterns[] = '/(\^{2})(.+)\1/Us'; $replace[] = '<del>$2</del>';
/* bold ** */$patterns[] = '/(\*{2})(.+)\1/Us'; $replace[] = '<b>$2</b>';
/* italic * */$patterns[] = '/(\*{1})(.+)\1/Us'; $replace[] = '<i>$2</i>';
/* underlined __ */$patterns[] = '/(_{2})(.+)\1/Us'; $replace[] = '<u>$2</u>';
/* header == */$patterns[] = '/(={2})(.+)\1/U'; $replace[] = '<h3>$2</h3>';
// bb codes
/* <b>, <i>, <s>, <u> */
$patterns[] = '/\[(i|b|u|s)(:[a-z0-9]+)?\](.+)\[\/\1(?:\2)?\]/Us';
$replace[] = '<$1>$3</$1>';
/* <mark> */
$patterns[] = '/\[(sp|spoiler)\](.+)\[\/\1\]/Us';
$replace[] = '<mark>$2</mark>';
/* <label>+<big> */
$patterns[] = '/\[(tw|textwall)\](.+)\[\/\1\]/Us';
$replace[] = '<div class="textwall"><input type="checkbox" class="tw"/><span class="tw">[развернуть]</span><big class="tw">$2</big></div>';
/* <pre> */
$patterns[] = '/\[(aa|raw)\](.+)\[\/\1\]/Us';
$replace[] = '<pre>$2</pre>';
return preg_replace($patterns, $replace, $rawstring);
/* for tests
>>12345
>1234
==wakabamark==
%%spoiler%%
^^striked^^
**bold**
*cursive*
__underlined__
==bbtags==
[b]bold[/b]
[i]cursive[/i]
[u]underlined[/u]
[s]striked[/s]
[spoiler]spoiler1[/spoiler]
[sp]spoiler2[/sp]
[textwall]textwall1[/textwall]
[tw]textwall2[/tw]
*/
}
Comments
0 B
|👍
/👎