Вход Регистрация
Файл: 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($textENT_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 
HTMLSPECIALCHARS($text);

}

/*
--------------------------------------------------
Вывод текста без спец.символов. Только 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, -1PREG_SPLIT_DELIM_CAPTURE);
  
$tagStack = ARRAY();
  
  FOR (
$i 0$l 0$i COUNT($arr); $i++) {
    
    IF (
$i 1) {
      
      IF (
MB_SUBSTR($arr[$i], 02'UTF-8') == '</' OR MB_SUBSTR($arr[$i], 02'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($tag1), " t>") . '>';
  
  }
  
  IF (
$max 10 STR($out)){
    
    
$text2 $out." ...";
    
  }ELSE{
    
    
$text2 $out;
    
  }
  
  RETURN 
$text2;
  
}
  
?>
Онлайн: 1
Реклама