Просмотр файла engine/classes/text.class.php

Размер файла: 5.44Kb
  1. <?php
  2.  
  3. Class text
  4. {
  5. static function output($str, $set = array('html' => true, 'links' => true, 'bbcode' => true, 'smiles' => true, 'br' => true))
  6. {
  7. if ($set['html'])
  8. $str = htmlspecialchars($str);
  9.  
  10. if ($set['links'])
  11. $str = self::links($str);
  12.  
  13. if ($set['bbcode'])
  14. {
  15. $tmp_str = $str;
  16. $str = self::bbcode($str);
  17. }
  18.  
  19. if ($set['smiles'] && $tmp_str == $str)
  20. $str = self::smiles($str);
  21.  
  22. if ($set['br'])
  23. {
  24. $str = nl2br($str);
  25. }
  26.  
  27. /**
  28. * Антиспам. Разрешается использовать только в SecWind
  29. */
  30.  
  31. if (file_exists(H . 'engine/files/data/antispam.db'))
  32. {
  33. $antispam = unserialize(file_get_contents(H . 'engine/files/data/antispam.db'));
  34. $str = str_replace(array_keys($antispam), array_values($antispam), $str);
  35. }
  36.  
  37. return $str; //esc($str);
  38. }
  39.  
  40. static function size_data($size = 0)
  41. {
  42. $size_ed = 'б';
  43. if ($size >= 1024)
  44. {
  45. $size = round($size / 1024, 2);
  46. $size_ed = 'Кб';
  47. }
  48. if ($size >= 1024)
  49. {
  50. $size = round($size / 1024, 2);
  51. $size_ed = 'Мб';
  52. }
  53.  
  54. if ($size >= 1024)
  55. {
  56. $size = round($size / 1024, 2);
  57. $size_ed = 'Гб';
  58. }
  59. return $size . ' ' . $size_ed;
  60. }
  61.  
  62. static function smiles($msg){return $msg;}
  63.  
  64. static function passgen($len = 12)
  65. {
  66. $password = '';
  67. $small = 'abcdefghijklmnopqrstuvwxyz';
  68. $large = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ';
  69. $numbers = '1234567890';
  70. for ($i = 0; $i < $len; $i++)
  71. {
  72. switch (mt_rand(1, 3))
  73. {
  74. case 3 :
  75. $password .= $large [mt_rand(0, 25)];
  76. break;
  77. case 2 :
  78. $password .= $small [mt_rand(0, 25)];
  79. break;
  80. case 1 :
  81. $password .= $numbers [mt_rand(0, 9)];
  82. break;
  83. }
  84. }
  85. return $password;
  86. }
  87.  
  88. static function antimat($str, $user)
  89. {
  90. include_once H.'engine/functions/censure.php';
  91. if ($censure = censure($str))
  92. {
  93. return $censure;
  94. }
  95. else
  96. return false;
  97. }
  98.  
  99. static function bbcode($msg)
  100. {
  101. $bbcode=array();/*
  102. if ($set['bb_i'])$bbcode['/\[i\](.+)\[\/i\]/isU']='<em>$1</em>';
  103. if ($set['bb_b'])$bbcode['/\[b\](.+)\[\/b\]/isU']='<strong>$1</strong>';
  104. if ($set['bb_u'])$bbcode['/\[u\](.+)\[\/u\]/isU']='<span style="text-decoration:underline;">$1</span>';
  105. if ($set['bb_big'])$bbcode['/\[big\](.+)\[\/big\]/isU']='<span style="font-size:large;">$1</span>';
  106. if ($set['bb_small'])$bbcode['/\[small\](.+)\[\/small\]/isU']='<span style="font-size:small;">$1</span>';
  107. if ($set['bb_red'])$bbcode['/\[red\](.+)\[\/red\]/isU']='<span style="color:#ff0000;">$1</span>';
  108. if ($set['bb_yellow'])$bbcode['/\[yellow\](.+)\[\/yellow\]/isU']='<span style="color:#ffff22;">$1</span>';
  109. if ($set['bb_green'])$bbcode['/\[green\](.+)\[\/green\]/isU']='<span style="color:#00bb00;">$1</span>';
  110. if ($set['bb_blue'])$bbcode['/\[blue\](.+)\[\/blue\]/isU']='<span style="color:#0000bb;">$1</span>';
  111. if ($set['bb_white'])$bbcode['/\[white\](.+)\[\/white\]/isU']='<span style="color:#ffffff;">$1</span>';
  112. if ($set['bb_size'])$bbcode['/\[size=([0-9]+)\](.+)\[\/size\]/isU']='<span style="font-size:$1px;">$2</span>';
  113.  
  114. if (count($bbcode))$msg= preg_replace(array_keys($bbcode), array_values($bbcode), $msg);
  115.  
  116. if ($set['bb_code']){
  117. $msg=preg_replace_callback('#&lt;\?(.*?)\?&gt;#sui', 'bbcodehightlight', $msg);
  118. $msg=preg_replace('#\[code\](.*?)\[/code\]#si', '\1', $msg);
  119. }*/
  120. return $msg;
  121. }
  122.  
  123. static function img_preg($arr)
  124. {
  125. return '<img src="http://'.$_SERVER['HTTP_HOST'].'/go.php?go='.base64_encode(html_entity_decode($arr[1])).'" alt="img" />';
  126. }
  127.  
  128. static function links_preg1($arr)
  129. {
  130. global $set;
  131.  
  132. if (preg_match('#^http://'.preg_quote($_SERVER['HTTP_HOST']).'#',$arr[1]) || !preg_match('#://#',$arr[1]))
  133. return '<a href="'.$arr[1].'">'.$arr[2].'</a>';
  134. else
  135. return '<a'.($set['web']?' target="_blank"':null).' href="http://'.$_SERVER['HTTP_HOST'].'/go.php?go='.base64_encode(html_entity_decode($arr[1])).'">'.$arr[2].'</a>';
  136.  
  137. }
  138. static function links_preg2($arr)
  139. {
  140. global $set;
  141. if (preg_match('#^http://'.preg_quote($_SERVER['HTTP_HOST']).'#',$arr[2]))
  142. return $arr[1].'<a href="'.$arr[2].'">'.$arr[2].'</a>'.$arr[4];
  143. else
  144. return $arr[1].'<a'.($set['web']?' target="_blank"':null).' href="http://'.$_SERVER['HTTP_HOST'].'/go.php?go='.base64_encode(html_entity_decode($arr[2])).'">'.$arr[2].'</a>'.$arr[4];
  145. }
  146. static function links($msg)
  147. {
  148. return $msg;
  149. global $set;
  150. if ($set['bb_img'])$msg=preg_replace_callback('/\[img\](.+)\[\/img\]/isU', 'text::img_preg', $msg);
  151. if ($set['bb_url'])$msg=preg_replace_callback('/\[url=(.+)\](.+)\[\/url\]/isU', 'text::links_preg1', $msg);
  152. if ($set['bb_http'])$msg=preg_replace_callback('~(^|\s)([a-z]+://([^ \r\n\t`\'"]+))(\s|$)~iu', 'text::links_preg2', $msg);
  153. return $msg;
  154. }
  155.  
  156. }