@s', '@\/\*(.*?)\*\/@sm', '@<([\?\%]) .*? \\1>@sx', '@<\!\[CDATA\[.*?\]\]>@sx', '@<\!\[.*?\]>.*?<\!\[.*?\]>@sx', '@\s--.*@', '@]*?>.*?@si', '@]*?>.*?@siU', '@<[\/\!]*?[^<>]*?>@si', ), ' ', $value); $value = strip_tags($value); $value = str_replace(array('/*', '*/', ' --', '#__'), ' ', $value); $value = mb_ereg_replace('[ ]+', ' ', $value); $value = trim($value); $value = htmlspecialchars($value, ENT_QUOTES); return (mb_strlen($value) == 0) ? $default : $value; } /** * Текст для массива. */ public static function textArray($value, $default = '') { $res = array(); foreach ((array) $value as $row) { $res[] = self::text($row, $default); } return $res; } /** * Текст для массива, результат объединённый в строку. */ public static function textList($value, $default = '', $separator = ',') { return implode($separator, self::textArray($value, $default)); } /** * Строка. */ public static function str($value, $default = '') { $value = self::text($value); $value = str_ireplace(array("\r", "\n"), ' ', $value); $value = mb_ereg_replace('[\s]+', ' ', $value); $value = trim($value); return (mb_strlen($value) == 0) ? $default : $value; } /** * Строка для массива. */ public static function strArray($value, $default = '') { $res = array(); foreach ((array) $value as $row) { $res[] = self::str($row, $default); } return $res; } /** * Строка для массива, результат объединённый в строку. */ public static function strList($value, $default = '', $separator = ',') { return implode($separator, self::strArray($value, $default)); } /** * HTML. */ public static function html($value, $default = '') { $value = self::_prepare($value); $value = mb_ereg_replace('[ ]+', ' ', $value); $value = trim($value); $value = addslashes($value); return (mb_strlen($value) == 0) ? $default : $value; } /** * HTML. */ public static function htmlArray($value, $default = '') { $res = array(); foreach ((array) $value as $row) { $res[] = self::html($row, $default); } return $res; } /** * ЧПУ. */ public static function sef($value, $default = '') { $value = self::str($value, ''); if (empty($value)) { $value = $default; } $value = mb_strtolower($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', ); $value = strtr($value, $converter); $value = mb_ereg_replace('[^-0-9a-z]', '-', $value); $value = mb_ereg_replace('[-]+', '-', $value); $value = trim($value, '-'); return $value; } /** * ЧПУ для массива. */ public static function sefArray($value, $default = '') { $res = array(); foreach ((array) $value as $row) { $res[] = self::sef($row, $default); } return $res; } /** * ЧПУ для массива, результат объединённый в строку. */ public static function sefList($value, $default = '', $separator = ',') { return implode($separator, self::sefArray($value, $default)); } /** * Имя файла. */ public static function filename($value, $default = '') { $value = self::str($value, $default); $value = str_replace(array('/', '|', '\\', '?', ':', ';', '\'', '"', '<', '>', '*'), '', $value); $value = mb_ereg_replace('[.]+', '.', $value); return (mb_strlen($value) == 0) ? $default : $value; } /** * Имя файла для массива. */ public static function filenameArray($value, $default = '') { $res = array(); foreach ((array) $value as $row) { $res[] = self::filename($row, $default); } return $res; } /** * Имя файла для массива, результат объединённый в строку. */ public static function filenameList($value, $default = '', $separator = ',') { return implode($separator, self::filenameArray($value, $default)); } /** * Unix timestamp. */ public static function time($value, $default = 0) { $value = self::str($value, $default); $value = strtotime($value); return (empty($value)) ? $default : $value; } /** * Unix timestamp для массива. */ public static function timeArray($value, $default = 0) { $res = array(); foreach ((array) $value as $row) { $res[] = self::time($row, $default); } return $res; } /** * Unix timestamp для массива, результат объединённый в строку. */ public static function timeList($value, $default = 0, $separator = ',') { return implode($separator, self::timeArray($value, $default)); } }