Нужно убрать символ перевода строки из регулярки, чтоб его не резал. Никакой таблицы символов не нашёл, может кто знает за каким кодом он стоит?
preg_replace('/([^\pL\pN\pP\pS\pZ])|([\xC2\xA0])/u', ' ', $string);
Вся функция:
function istrip($string) {
$old_string = $string;
$string = strip_tags($string);
$string = preg_replace('/([^\pL\pN\pP\pS\pZ])|([\xC2\xA0])/u', ' ', $string);
$string = str_replace(' ',' ', $string);
$string = trim($string);
if ($string === $old_string) {
return $string;
} else {
return istrip($string);
}
}
Regex