Вход Регистрация
Файл: system/functions/text.php
Строк: 11
<?php 
  
/*
-----------------------------------------------
Удаление в тексте лишних тегов в начале и конце
-----------------------------------------------
*/
  
FUNCTION SUB_TRIM($text) { 
  
  
$text = PREG_REPLACE("{(<br[\s]*(>|/>)s*){2,}}i", "<br /><br />", $text); 
  
$text = PREG_REPLACE("{(<br[\s]*(>|/>)s*)}i", "<br />", $text); 
  
$text = PREG_REPLACE("{(<br[\s]*(>|/>)s*){2,}}i", "</br></br>", $text); 
  
  RETURN 
$text; 

} 

/*
--------------------------
Вывод текста с настройками
--------------------------
*/
  
FUNCTION TEXT($text, $br = 1, $smiles = 1, $bb = 1, $link = 1)
{
  
  
//$text - выводимый текст
  //$smiles - вставка смайлов
  //$br - перенос строк
  //$bb - вывод bb кодов
  //$link - обработка и вывод ссылок
  
  
$text = STRIPSLASHES(HTMLSPECIALCHARS($text, ENT_QUOTES, 'UTF-8'));
  
  IF (
$smiles == 1){
    
    
$text = SMILES($text);
    
  }
  
  IF (
$br == 1){
    
    
$text = NL2BR($text);
  
  }
  
  IF (
$bb == 1){
    
    
$text = BB_CODE($text);
  
  }
  
  IF (
$link == 1){
    
    
$text = LINKS($text);
  
  }
  
  
$text = SUB_TRIM($text);
  
  RETURN 
$text;

}

/*
--------------------------------------
Вывод абсолютного текста без bb-кодов,
форматирований и т.п.
--------------------------------------
*/
  
FUNCTION TEXT_ABSOLUTE($text)
{
  
  RETURN 
STRIPSLASHES(HTMLSPECIALCHARS($text, ENT_QUOTES, 'UTF-8'));

}

/*
--------------------------------------------------
Вывод текста без спец.символов. Только a-z,
цифры и некоторые необходимые символы. В противном
случае спец.символы и пробел заменяются
--------------------------------------------------
*/

FUNCTION TEXT_PROCESSING($text)
{
  
  
$special_chars = ARRAY( '?', '[', ']', '/', '\', '=', '<', '>', ':', ';', ',', "'", '"', '&', '$', '#', '*', '(', ')', '|', '~', '`', '!', '{', '}', '%', '+', chr( 0 ) );
  
  
$text = PREG_REPLACE("#x{00a0}#siu", ' ', $text);
  
$text = STR_REPLACE($special_chars, '', $text);
  
$text = STR_REPLACE(ARRAY('%20', '+' ), '-', $text);
  
$text = PREG_REPLACE('/[rnt -]+/', '-', $text);
  
$text = TRIM($text, '.-_');    
  
  RETURN 
HTMLSPECIALCHARS($text);
  
}

/*
---------------------------------------------
Полное удаление символов из текста без замены
---------------------------------------------
*/

FUNCTION CLEARSPECIALCHARS($text)
{
  
  
$special_chars = ARRAY( '?', '[', ']', '/', '\', '=', '<', '>', ':', ';', ',', "'", '"', '&', '$', '#', '*', '(', ')', '|', '~', '`', '!', '{', '}', '%', '+', chr( 0 ) );
  
  
$text = PREG_REPLACE("#x{00a0}#siu", ' ', $text);
  
$text = STR_REPLACE($special_chars, '', $text);
  
$text = STR_REPLACE(ARRAY('%20', '+' ), '', $text);
  
$text = TRIM($text, '.-_');    
  
  RETURN 
HTMLSPECIALCHARS($text);
  
}

/*
--------------------------------
Перевод русских букв в аглийские
--------------------------------
*/

FUNCTION TRANSLIT($value)
{
    
  
$converter = ARRAY(
    
        
'а' => 'a',    'б' => 'b',    'в' => 'v',    'г' => 'g',    'д' => 'd',
        
'е' => 'e',    'ё' => 'e',    'ж' => 'zh',   'з' => 'z',    'и' => 'i',
        
'й' => 'y',    'к' => 'k',    'л' => 'l',    'м' => 'm',    'н' => 'n',
        
'о' => 'o',    'п' => 'p',    'р' => 'r',    'с' => 's',    'т' => 't',
        
'у' => 'u',    'ф' => 'f',    'х' => 'h',    'ц' => 'c',    'ч' => 'ch',
        
'ш' => 'sh',   'щ' => 'sch',  'ь' => '',     'ы' => 'y',    'ъ' => '',
        
'э' => 'e',    'ю' => 'yu',   'я' => 'ya',
 
        
'А' => 'A',    'Б' => 'B',    'В' => 'V',    'Г' => 'G',    'Д' => 'D',
        
'Е' => 'E',    'Ё' => 'E',    'Ж' => 'Zh',   'З' => 'Z',    'И' => 'I',
        
'Й' => 'Y',    'К' => 'K',    'Л' => 'L',    'М' => 'M',    'Н' => 'N',
        
'О' => 'O',    'П' => 'P',    'Р' => 'R',    'С' => 'S',    'Т' => 'T',
        
'У' => 'U',    'Ф' => 'F',    'Х' => 'H',    'Ц' => 'C',    'Ч' => 'Ch',
        
'Ш' => 'Sh',   'Щ' => 'Sch',  'Ь' => '',     'Ы' => 'Y',    'Ъ' => '',
        
'Э' => 'E',    'Ю' => 'Yu',   'Я' => 'Ya',
    
  );
  
  
$value = STRTR($value, $converter);
  
  RETURN 
$value;
  
}

/*
----------------------
Функция обрезки текста
----------------------
*/

FUNCTION CROP_TEXT($text, $min, $max){
  
  
//$text - текст который нужно обрезать
  //$min - обрезка начала текста
  //$max - обрезка конца текста
  
  
$out = '';
  
  
$arr = PREG_SPLIT('/(<.+?>|&#?\w+;)/s', $text, -1, PREG_SPLIT_DELIM_CAPTURE);
  
$tagStack = ARRAY();
  
  FOR (
$i = 0, $l = 0; $i < COUNT($arr); $i++) {
    
    IF (
$i & 1) {
      
      IF (
MB_SUBSTR($arr[$i], 0, 2, 'UTF-8') == '</' OR MB_SUBSTR($arr[$i], 0, 2, 'UTF-8') == '[/') {
        
        
ARRAY_POP($tagStack);
      
      }ELSEIF(
$arr[$i][0] == '&') {
        
        
$l++;
      
      }ELSEIF(
MB_SUBSTR($arr[$i], -2) != '/>' OR MB_SUBSTR($arr[$i], -2) != '/]') {
        
        
ARRAY_PUSH($tagStack, $arr[$i]);
      
      }
      
      
$out .= $arr[$i];
    
    }ELSEIF(
MB_SUBSTR($arr[$i], -2) != '/>' ) {
      
      IF ((
$l += STRLEN($arr[$i])) >= $max) {
        
        
$out .= MB_SUBSTR($arr[$i], $min, $max - $l + STRLEN($arr[$i]));
        
        BREAK;
      
      }ELSE{
        
        
$out .= $arr[$i];
      
      }
    
    }
  
  }
  
  WHILE((
$tag = ARRAY_POP($tagStack)) !== NULL) {
    
    
$out .= '</' . STRTOK(MB_SUBSTR($tag, 1), " t>") . '>';
  
  }
  
  IF (
$max - 10 < STR($out)){
    
    
$text2 = $out." ...";
    
  }ELSE{
    
    
$text2 = $out;
    
  }
  
  RETURN 
$text2;
  
}
  
?>
Онлайн: 0
Реклама