За последние 24 часа нас посетили 14962 программиста и 1764 робота. Сейчас ищут 1546 программистов ...

Фильтр по доменному имени регуляркой

Тема в разделе "Регулярные выражения", создана пользователем Paka, 26 апр 2016.

  1. Paka

    Paka Новичок

    С нами с:
    22 апр 2016
    Сообщения:
    18
    Симпатии:
    0
    Всем доброго времени суток, нужно допилить небольшую регулярку для проверки наличиия конкретного доменного имени в поле. Facebook или instagram. Фильтр нужен для плагина Wordpres contact form 7

    PHP:
    1. function cf7_custom_url_check( $result, $url )
    2. {
    3.   if ($result)
    4.   {
    5.     $regex='@^(https?\://)?(www\.)?([a-z0-9]([a-z0-9]|(\-[a-z0-9]))*\.)+[a-z]+$@i';  
    6.     if (!preg_match($regex,$url)) $result=FALSE;    
    7.   }
    8.   return $result;
    9. }
    10. add_filter( 'wpcf7_is_url', 'cf7_custom_url_check', 10, 2 );
    Это уже готовый фильтр для этого плагина но для обычного доменного имени, а мне нужно что бы пропускало только такого формата
    https://www.instagram.com/p/Brtaan-Yp7bi/
    https://www.facebook.com/p/Brtaan-Yp7bi/
    Пробовал разные комбинации но так как я далек то у меня не вышло, лучи в карму откликнувшимся!)
     
  2. denis01

    denis01 Суперстар
    Команда форума Модератор

    С нами с:
    9 дек 2014
    Сообщения:
    12.227
    Симпатии:
    1.714
    Адрес:
    Молдова, г.Кишинёв
  3. Paka

    Paka Новичок

    С нами с:
    22 апр 2016
    Сообщения:
    18
    Симпатии:
    0
    Это фильтр для поля куда пользователь должен скопировать ссылку
     
  4. denis01

    denis01 Суперстар
    Команда форума Модератор

    С нами с:
    9 дек 2014
    Сообщения:
    12.227
    Симпатии:
    1.714
    Адрес:
    Молдова, г.Кишинёв
    Отлично, разбираем с помощью parse_url и проверяем в массиве по ключу host на совпадение по доменам instagram и facebook https://php.ru/manual/function.in-array.html
     
  5. Paka

    Paka Новичок

    С нами с:
    22 апр 2016
    Сообщения:
    18
    Симпатии:
    0
    Нашел решение которое мне подошло, проверяет просто наличие конкретного имени в строке
    '~\b(facebook|instagram)\b~i';
    Спасибо всем кто откликнулся
     
  6. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768