$caption = preg_replace('~(\&[#0-9a-zA-Z]{1,10}\;)~i', " ", $caption); // чистим спец символы типа $caption = preg_replace('#([\r\n\s])+#is', " ", $caption); // удаляем пустое пространство и повторяющиеся пробелы $caption = preg_replace("#[^\p{L}0-9\s\!\-\_\.\,\?]#iu", '', $caption);
// удаляем все кроме слов, цифр и некоторых цифр