Advertisement
Joker0day

patterns

Dec 20th, 2017
736
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 1.84 KB | None | 0 0
  1. <?php
  2. public static function settags($rawstring, $cat = null) {
  3.     $patterns = array(); $replace = array();
  4.         // misc
  5.     /* reflinks = a     */$patterns[] = '/(>{2})(\d+)/';    $replace[] = '<a class="ref" rel="$2" href="'.$cat.'/post/$2">$0</a>';
  6.     /* quotes = q       */$patterns[] = '/^(>{1})(.+)$/m';  $replace[] = '<q>$0</q>';
  7.     /* triforce         */$patterns[] = '/^\/triforce$/m';  $replace[] = '&nbsp;&#9650;\n&#9650;&nbsp;&#9650;\n';
  8.         // wakabamark
  9.     /* spoilers     %%  */$patterns[] = '/(%{2})(.+)\1/Us';     $replace[] = '<mark>$2</mark>';
  10.     /* striked      ^^  */$patterns[] = '/(\^{2})(.+)\1/Us';    $replace[] = '<del>$2</del>';
  11.     /* bold         **  */$patterns[] = '/(\*{2})(.+)\1/Us';    $replace[] = '<b>$2</b>';
  12.     /* italic       *   */$patterns[] = '/(\*{1})(.+)\1/Us';    $replace[] = '<i>$2</i>';
  13.     /* underlined   __  */$patterns[] = '/(_{2})(.+)\1/Us';     $replace[] = '<u>$2</u>';
  14.     /* header       ==  */$patterns[] = '/(={2})(.+)\1/U';      $replace[] = '<h3>$2</h3>';
  15.         // bb codes
  16.         /* <b>, <i>, <s>, <u> */
  17.     $patterns[] = '/\[(i|b|u|s)(:[a-z0-9]+)?\](.+)\[\/\1(?:\2)?\]/Us';
  18.         $replace[] = '<$1>$3</$1>';
  19.         /* <mark> */
  20.     $patterns[] = '/\[(sp|spoiler)\](.+)\[\/\1\]/Us';
  21.         $replace[] = '<mark>$2</mark>';
  22.         /* <label>+<big> */
  23.     $patterns[] = '/\[(tw|textwall)\](.+)\[\/\1\]/Us';
  24.         $replace[] = '<div class="textwall"><input type="checkbox" class="tw"/><span class="tw">[развернуть]</span><big class="tw">$2</big></div>';
  25.         /* <pre> */
  26.     $patterns[] = '/\[(aa|raw)\](.+)\[\/\1\]/Us';
  27.         $replace[] = '<pre>$2</pre>';
  28.  
  29.     return preg_replace($patterns, $replace, $rawstring);
  30.  
  31.     /* for tests
  32.     >>12345
  33.     >1234
  34.     ==wakabamark==
  35.     %%spoiler%%
  36.     ^^striked^^
  37.     **bold**
  38.     *cursive*
  39.     __underlined__
  40.     ==bbtags==
  41.     [b]bold[/b]
  42.     [i]cursive[/i]
  43.     [u]underlined[/u]
  44.     [s]striked[/s]
  45.     [spoiler]spoiler1[/spoiler]
  46.     [sp]spoiler2[/sp]
  47.     [textwall]textwall1[/textwall]
  48.     [tw]textwall2[/tw]
  49.     */
  50. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement