Я использую формат utf8 для хранения всех моих данных в mysql. Прежде чем данные будут вставлены в базу данных, мне нужно очистить строки ненужными символами. Строки находятся в формате utf8. Я знаю, как использовать regex и string replace, но не знаю, как работать с арабскими символами.
Пример строки, которую необходимо очистить: «████ .. القوانين الجديدة في قسم العناي»;
Благодарю вас
ОК. Как уже сказал @Jonathan Leffler , если вы можете указать диапазоны символов Юникода для символов, которые необходимо заменить, вы можете использовать регулярное выражение для замены символов пустой строкой.
Символ unicode указывается как \x{FFFF}
в выражении (в PHP). Кроме того, вы должны установить модификатор u
, чтобы PHP обрабатывал шаблон как UTF8.
Итак, в конце концов, у вас есть что-то вроде этого:
preg_replace('/[\x{FFFF}-\x{FFFF}]+/u','',$string);
где
/.../u
– разделители плюс модификатор [...]+
является символьным классом плюс квантификатор, что означает совпадение любого из этих символов внутри одного или более \x{FFFF}-\x{FFFF}
– это диапазон символов Юникода (очевидно, вы должны указать правильные коды / номера символов). Вы также можете отрицать группу с помощью ^
вы можете указать диапазон, который вы хотите сохранить:
preg_replace('/[^\x{FFFF}-\x{FFFF}]+/u','',$string);
Больше информации: