- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу
VK приобрела 70% в структуре компании-разработчика red_mad_robot
Которая участвовала в создании RuStore
Оксана Мамчуева
Как удалить плохие SEO-ссылки и очистить ссылочную массу сайта
Применяем отклонение ссылок
Сервис Rookee
Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий
Задача пропустить только корректные доменные имена и субдомены то есть sub.domen.ru пропустить, а sub.домен.rю уже втопку.
делаю так
<?
$Pattern="[-0-9a-z._]+\.+[a-z]+";
if (preg_match($Pattern, $dom)){echo "$dom Ok";} else {echo "$dom Not!";}
?>
ни чего не пропускает
делаю так
<?
$Pattern="[-0-9a-z._]+\.+[a-z]+";
if (epregi($Pattern, $dom)){echo "$dom Ok";} else {echo "$dom Not!";}
?>
пропускает запрещенные символы.
Где моя ошибка?
1) epregi не существует
2) для preg функций нужно использовать ограничители (например ~) (например: ~[a-z]~
3) для регистронезависимого preg надо указывать модификатор i (например: ~[a-z]~i
4) текущий рег у Вас проверяет строку на предмет _вхождения_ в неё следующего
4а) буквы,цифры,тире,точка,подчеркивание
4б) точка
4в) буквы
(пункты а-в - это имеется ввиду что подряд идет)
Т.е. например _достаточно_ ваываs.rвав что бы выдался положительный результат, т.к. оно содержит нужный паттерн.
Возможно Вам надо использовать ^ и $ символы как символы соответственно начала или конца строки. Например ~^[a-z]$~ будет означать что между строка содержит только буквы.
P.S.: Включайте вывод ошибок, половину сразу увидите. Оба приведённых Вами кода неработоспособны в принципе.
Спасибо. Заработало. Не учел экранирование спецсимволов.
попробуйте так
ps: а разве символ подчеркивания ("_") разрешен?
исправил, исключает подряд идущие точки (например, www..domain.com)
или еще посложнее
$Pattern='/^(?:[^\W_]((?:[^\W_]|-){0,61}[^\W_])?\.)+[a-zA-Z]{2,6}$/';Zend_Filter::isHostname
Продолжу тему. Пришлось немного доработать патерн
$Pattern="/^[0-9a-z]+[\-0-9a-z\._]+\.+[a-z]+$/";
а то некоторые молодчики умудряются писать .sub.domen.ru
Предвидя дальнейшие издевательства над доменным именем решил предотвратить доменные имена типа
sub.....domen.ru
Как правильно указать, что спецсимволы . - _ можно использовать только 1 раз подподряд?
$Pattern="/^[0-9a-z]+[\-{1}0-9a-z\.{1}_{1}]+\.+[a-z]+$/";
?
также остался вопрос:
ps: а разве символ подчеркивания ("_") разрешен?
ps: а разве символ подчеркивания ("_") разрешен?
Вообще то, да...🚬
Вообще то, да...
спасибо, не знал
в общем