Шаблон PHP для проверки URL на английском и персидском (фарси)

0

У меня есть шаблон, который проверяет правильный URL-адрес или нет, и это отлично работает на английском языке, но когда я даю ему символы фарси, он возвращает false из-за неверного URL-адреса.

Код работает с некоторыми URL-адресами со смешанными символами фарси, но он не работает с другими! Где я могу внести изменения или что я могу добавить в этот шаблон, чтобы он мог также проверять символы фарси на английском языке?

// check if URL is valid format
$pattern = '/^(([\w]+:)?\/\/)?(([\d\w]|%[a-fA-f\d]{2,2})+(:([\d\w]|%[a-fA-f\d]{2,2})+)?@)?([\d\w]([-\d\w]{0,253}[\d\w])?\.)+[\w]{2,4}(:[\d]+)?(\/([-+_~.,\d\w]|%[a-fA-f\d]{2,2})*)*(\?(&?([-+_~.,\d\w]|%[a-fA-f\d]{2,2})=?)*)?(#([-+_~.,\/\d\w]|%[a-fA-f\d]{2,2})*)?$/'; 
$isLink = preg_match($pattern, $url); // Returns true if a link    
  • 0
    Можете ли вы предоставить URL, где он не совпадает? этот шаблон также соответствует электронной почте и mailto:
Теги:
validation
url

1 ответ

0
Лучший ответ

Вы можете использовать модификатор u для символов Farsi, но я не уверен в этом, потому что вы не указали URL-адрес, чтобы проверить его с помощью модификатора u

Попробуй вот так.

// check if URL is valid format
$pattern = '/^(([\w]+:)?\/\/)?(([\d\w]|%[a-fA-f\d]{2,2})+(:([\d\w]|%[a-fA-f\d]{2,2})+)?@)?
([\d\w]([-\d\w]{0,253}[\d\w])?\.)+[\w]{2,4}(:[\d]+)?(\/([-+_~.,\d\w]|%[a-fA-f\d]{2,2})*)*
(\?(&?([-+_~.,\d\w]|%[a-fA-f\d]{2,2})=?)*)?(#([-+_~.,\/\d\w]|%[a-fA-f\d]{2,2})*)?$/u'; 
$isLink = preg_match($pattern, $url); // Returns true if a link                   ^see   
  • 0
    я использую модификатор u, но модификатор u не работает. Есть ли другой метод для проверки URL?
  • 0
    Можете ли вы предоставить URL, где он не совпадает?
Показать ещё 1 комментарий

Ещё вопросы

Сообщество Overcoder
Наверх
Меню