help.php 3.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100
  1. <?php
  2. if(!DEFINED('EGP'))
  3. exit(header('Refresh: 0; URL=http://'.$_SERVER['SERVER_NAME'].'/404'));
  4. class help
  5. {
  6. public static function text($text)
  7. {
  8. $etext = '';
  9. $aStr = explode("\n", htmlspecialchars($text));
  10. foreach($aStr as $line => $str)
  11. {
  12. $check = str_replace(' ', '', $str);
  13. if(isset($aStr[$line+1]) AND ($check == '' AND str_replace(' ', '', $aStr[$line+1]) == ''))
  14. continue;
  15. else{
  16. $etext .= rtrim(str_replace("\t", ' ', $str))."\n";
  17. continue;
  18. }
  19. if($check != '')
  20. $etext .= rtrim(str_replace("\t", ' ', $str))."\n";
  21. }
  22. $str_search = array(
  23. "#\\\n#is",
  24. "#\[spoiler\](.+?)\[\/spoiler\]#is",
  25. "#\[sp\](.+?)\[\/sp\]#is",
  26. "#\[b\](.+?)\[\/b\]#is",
  27. "#\[u\](.+?)\[\/u\]#is",
  28. "#\[code\](.+?)\[\/code\]#is",
  29. "#\[quote\](.+?)\[\/quote\]#is",
  30. "#\[url=(.+?)\](.+?)\[\/url\]#is",
  31. "#(^|[\n ])([\w]+?://[\w\#$%&~/.\-;:=,?@\[\]+]*)#is"
  32. );
  33. $str_replace = array(
  34. "<br>",
  35. "<div><b class='spoiler'>Посмотреть содержимое</b><div class='spoiler_main'>\\1</div></div>",
  36. "<div><b class='spoiler'>Посмотреть содержимое</b><div class='spoiler_main'>\\1</div></div>",
  37. "<b>\\1</b>",
  38. "<u>\\1</u>",
  39. "<div><b class='spoiler'>Посмотреть содержимое</b><div class='spoiler_main'><pre><code>\\1</code></pre></div></div>",
  40. "<blockquote><p>\\1</p></blockquote>",
  41. "<a href='\\1' target='_blank'>\\2</a>",
  42. " <a href='\\2' target='_blank'>\\2</a>"
  43. );
  44. return preg_replace($str_search, $str_replace, $etext);
  45. }
  46. public static function ago($time, $brackets = false)
  47. {
  48. global $start_point;
  49. $diff = $start_point-$time;
  50. if($diff < 0)
  51. return '';
  52. if(!$diff)
  53. $diff = 1;
  54. $seconds = array('секунду', 'секунды', 'секунд');
  55. $minutes = array('минуту', 'минуты', 'минут');
  56. $hours = array('час', 'часа', 'часов');
  57. $days = array('день', 'дня', 'дней');
  58. $weeks = array('неделю', 'недели', 'недель');
  59. $months = array('месяц', 'месяца', 'месяцев');
  60. $years = array('год', 'года', 'лет');
  61. $phrase = array($seconds, $minutes, $hours, $days, $weeks, $months, $years);
  62. $length = array(1, 60, 3600, 86400, 604800, 2630880, 31570560);
  63. for($i = 6; ($i >= 0) AND (($no = $diff/$length[$i]) <= 1); $i-=1);
  64. if($i < 0)
  65. $i = 0;
  66. $_time = $start_point-($diff % $length[$i]);
  67. $no = ceil($no);
  68. if($brackets)
  69. return '('.$no.' '.help::parse_ago($no, $phrase[$i]).' назад)';
  70. return $no.' '.help::parse_ago($no, $phrase[$i]).' назад';
  71. }
  72. private static function parse_ago($number, $titles)
  73. {
  74. $cases = array(2, 0, 1, 1, 1, 2);
  75. return $titles[($number % 100 > 4 AND $number % 100 < 20 ) ? 2 : $cases[min($number % 10, 5)]];
  76. }
  77. }
  78. ?>