Как сделать так, что если в тексте есть какие либо неразрешенные символы, то генерировало ошибку, но в массиве будут только разрешенные символы.
если в массиве только разрешенные символы то можно применить регулярку начало-строки + набор-разрешенных-символов-от-одного-до-бесконечности + конец-строки. И если эта регулярка НЕ сработала, то в строке есть недопустимые символы.
Функция preg_match чтобы найти, функция preg_replace чтобы удалить. В вашем случае, последней будет достаточно, т.к. у неё есть параметр count, который возвращает кол-во замен.
Я понял фразу "в массиве будут только разрешенные символы", как то, что ТС хочет удалять. Хотя, это всё могут быть "трудности перевода" )
@Deonis а я понял что у человека на входе есть строка, которую надо проверить на наличие недопустимых символов, и выдать ошибку, если да. При этом он хочет идти от обратного и указывать какие же символы у него допустимы. И делать это через массив.
PHP: <?php $str = 'проверяемая строка'; if ( preg_match ( '~^[aA-zZ0-9\-_]+$~', $str ) ) { echo "Все верно"; } else { echo "Есть недопустимые символы"; }
PHP: <?php $str = 'stroka'; if ( preg_match ( '~[\x21-\x7E]+~', $str, $mt) ) { print_r($mt); //Array ( [0] => stroka ) }