@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));
}
}