Очищает и возвращает данные. Текст будет очищен от HTML, а символы переноса строки, табуляции, прогона страниц, возврата каретки будут заменены на пробел. После чего все лишние пробелы между словами будут удалены.
Синтаксис : clear($text, $dont_htmlspecialchars=false)
$text - данные, которые желаете очистить
$dont_htmlspecialchars - если укажите true , то функция после очистки не будет их дополнительно обрабатывать функцией htmlspecialchars
Запускается:
$this-> clear($text);// внутри класса system
$GLOBALS['system']-> clear($text, true );// глобально
Примеры:
Предположим, у нас есть переменная $text = '<p>привет & мир</p>';
$this-> clear($text);// возвратит "привет & мир"
$GLOBALS['system']-> clear($text, true );// возвратит "привет & мир"
Примечание: функция обычно используется при создании title , alt и подобного вида атрибутов к элементам.
function clear($text='', $dont_htmlspecialchars=false){
//log_($dont_htmlspecialchars.'=='.$text);
if(!$text){ return ; }
// формируем текст
if(strstr($text,'{~') && strstr($text,'~}')){
$text = preg_replace('/\{\~(.+)\~\}/sUi', ' ', $text);
}
if(strstr($text,'<') && strstr($text,'>')){
$close_tags = array("'<\!\-\-(.+)\-\-\>'sUi", "'<noindex(.+)noindex>'sUi", "'<style(.+)style>'sUi", "'<script(.+)script>'sUi", "'<(.+)>'sUi");
$text = strip_tags( preg_replace($close_tags, ' ', $text) );
}
$replace_modifiers = array("\n","\t","\r","\f");
// очищенный текст
$text = str_replace($replace_modifiers, ' ', str_replace(' ', ' ', $text) );
$text = $dont_htmlspecialchars? $text : htmlspecialchars( $text );
// удяляем лишние пробелы
if(strstr($text,' ')){
$text = preg_replace("/[\s]{2,}/u", " ", $text);
}
return $text;
}
if(!function_exists('mb_stristr')){// для поддержки php < 5
function mb_stristr($haystack='', $needle=''){
return stristr($haystack, $needle);
}
}
?>