Почему это регулярное выражение пропускает site.com без слэша в конце?
if(!preg_match('|^(http(s)?://)?(www.)?site.com/*|i', $_POST['site'])) {
Мне нужно провести проверку на наличие слеша после доменного имени
Поставьте вместо * - +
'^(http(s)?://)?(www.)?site.com/+'
Правильнее будет |^(http(s)?://)?(www\.)?site\.com/$|i, что означает — после обязательного / ни чего идти не должно.
Так же не забывайте ставить обратный слеш \ перед точками, иначе http://site-com тоже пройдёт проверку.
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости