Если вы посмотрите на свой шаблон, именно этот
/^http(s)?://(([a-z]+)\.)*stackoverflow.com/
Разделитель используется как символ соответствия, и если у вас были ошибки, вы получите ошибку "Unknown modifier". Итак, первый совет: TURN ERROR REPORTING ON!
Чтобы исправить ошибку, попробуйте использовать другой разделитель, например. {}
, так как это проще, чем читать нагрузки leaning toothpicks ...
{^http(s)?://(([a-z]+)\.)*stackoverflow.com}
Другой проблемой является точкой в $domain
становится матчем группового символа - в любое время вставить неизвестные данные в регулярное выражение, получить в привычке использовать preg_quote, чтобы избежать его, например
$pattern = "{^http(s)?://(([a-z]+)\.)*".preg_quote($domain, '{')."}";
(Примечание - хороший улов STEMA в комментариях: если вы используете другой разделитель, вы должны передать эту preg_quote Это достаточно умно, чтобы обнаружить спаренные разделители, так что если вы передаете {
он будет также избежать }
.)
Я думаю, что вы получили сообщение об ошибке, да? –
У вас есть ошибка - вам нужно избегать ваших косых черт. preg_match возвращает false – SmokeyPHP
также вам нужно сбежать. в. – Tdelang