как добавить арабские буквы в url в regex
if (!preg_match("^(http|https|ftp)\://[a-zA-Z0-9\-\.]+\.[a-zA-Z]{2,3}(:[a-zA-Z0-9]*)?/?([a-zA-Z0-9\-\._\?\,\'/\\\+&%\$#\=~])*$^",$_POST['url'])) {}
Лучшим вариантом является использование для этого класса Chracter Unicode . Для вашего дела это будет \p{Arabic}
. Но не забывайте, что вы также должны добавить модификатор Unicode PCRE /u
в конце.
Замените [a-zA-Z0-9]
на [\pL0-9]
и не забудьте модификатор Unicode PCRE /u
в конце вашего регулярного выражения.
Использование кода UTF-8: \x123
должно помочь.
UPD: полное regexp похоже на это (для правила any URL part could contain arabic chars
):
^(http|https|ftp)\://[a-zA-Z0-9\-\.\x0600-\x06FF\x0750-\x077F\xFB50-\xFDFF\xFE70-\xFEFF]+\.[a-zA-Z\x0600-\x06FF\x0750-\x077F\xFB50-\xFDFF\xFE70-\xFEFF]{2,3}(:[a-zA-Z0-9\x0600-\x06FF\x0750-\x077F\xFB50-\xFDFF\xFE70-\xFEFF]*)?/?([a-zA-Z0-9\-\._\?\,\'/\\\+&%\$#\=~\x0600-\x06FF\x0750-\x077F\xFB50-\xFDFF\xFE70-\xFEFF])*$