I could easily remove any non Persian (Farsi) characters using this function, the range for Arabic and Persian are shared so this code could be used for Arabic too.
<?php mb_ereg_replace("[^-ۿ]","-",$string); ?>
This is the reference for finding the character range of Unicode languages:
http://unicode.org/charts/
mb_ereg
(PHP 4 >= 4.2.0, PHP 5)
mb_ereg — Совпадение с регулярным выражением с поддержкой многобайтовых символов
Описание
$pattern
, string $string
[, array $regs
] )Выполняет поиск совпадения с регулярным выражением с поддержкой многобайтовых символов.
Список параметров
Возвращаемые значения
Выполняет поиск совпадения с регулярным выражением
с поддержкой многобайтовых символов, и возвращает 1, если совпадения найдены.
Если указан необязательный параметр regs, функция
возвращает длину совпавшей части в байтах, а массив ( array)
regs будет содержать подстроку совпавшей
строки. Функция возвращает 1, если регулярное выражение совпадает с пустой
строкой. Если совпадения не найдены или возникла ошибка, возвращается FALSE.
Примечания
Замечание:
Для этой функции будет использована внутренняя кодировка или кодировка, установленная функцией mb_regex_encoding().
Смотрите также
- mb_regex_encoding() - Возвращает текущую кодировку для многобайтового регулярного выражения в виде строки
- mb_eregi() - Поиск соответствий регулярному выражению поддерживающий многобайтные символы и нечувствительный к регистру
Hebrew regex tested on PHP 5, Ubuntu 8.04.
Seems to work fine without the mb_regex_encoding lines (commented out).
Didn't seem to work with \uxxxx (also commented out).
<?php
echo "Line ";
//mb_regex_encoding("ISO-8859-8");
//if(mb_ereg(".*([\u05d0-\u05ea]).*", $this->current_line))
if(mb_ereg(".*([א-ת]).*", $this->current_line))
{
echo "has";
}
else
{
echo "doesn't have";
}
echo " Hebrew characters.<br>";
//mb_regex_encoding("UTF-8");
?>
