Joker0day icon

patterns

Joker0day | PRO | 12/21/17 04:03:13 AM UTC | 0 ⭐ | 946 👁️ | Never ⏰ | []
PHP |

1.84 KB

|

None

|

0 👍

/

0 👎

<?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[] = '&nbsp;&#9650;\n&#9650;&nbsp;&#9650;\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

  •  icon
    01/01/70 12:00:00 AM UTC
    Plain Text |

    0 B

    |

    👍

    /

    👎