- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу
Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий
Всем доброго времени суток.
Еще очень туго соображаю в регулярных выражениях, но есть маленькая задачка и
решение
1. Задача, проверить строку вида "page-XX", где X-число, которое начинается не на 0, т.е. page-1, page-1010101 подходят, а page-01 не подходит.
2. Решение
if (ereg("^(page-)([1-9][0-9]+|[1-9]+)$",$str))
Правильноли я сделал? и нетли более изящного решения?
Заранее всем спасибо.
входные данные преобразовывать в int();
и не нужно тут регулярок.
page-1 и page-01 дадут один и тотже результат 1, а строки разные, мне надо отсечь все, где есть 0 перед числом
page-1 и page-01 дадут один и тотже результат 1, а строки разные, мне надо отсечь все, где есть 0 перед числом
if ( $str !=== (int)$str ) {
}
Пойдет?
if ( $str !=== (int)$str ) {
}
Пойдет?
Не пойдет, т.к. "page-1" !=== (int)"page-1" и "page-01" !=== (int)"page-01"
А вообще странно, данное условие почемуто порпускает вообще любую строку даже, когда строка равна просто "1".
P.s. Данная строка page-1....является частью url, потому и пытаюсь сделать жесткую проверку, чтобы не плодить кучу дублей и т.п.
Ладно ладно, уговорили :)
$site='page-1010101';
if (preg_match('@page-[1-9]+@smi',$site))
{
//Если всё ок.
}
if (preg_match("/^page-[1-9][0-9]*$/", $str))
Не пойдет, т.к. "page-1" !=== (int)"page-1" и "page-01" !=== (int)"page-01"
Аа
P.s. Данная строка page-1....является частью url, потому и пытаюсь сделать жесткую проверку, чтобы не плодить кучу дублей и т.п.
Куча дублей будет, если на вашем сайте будут неверные ссылки.
if (preg_match("/^page-[1-9][0-9]*$/", $str))
Спасибо, Ваш вариант работает), пока разбираюсь как))
secach добавил 13.01.2011 в 17:42
Ладно ладно, уговорили :)
$site='page-1010101';
if (preg_match('@page-[1-9]+@smi',$site))
{
//Если всё ок.
}
Пропускает много лишнего, xxxpage-1ds2
Хотя я наверное слишком уж заморачиваюсь, но пока в основном учусь, пытаюсь сделать "идеальный чпу" с четкой иерархией URL, шаг влево-шаг вправо 301 или 404
шаг влево-шаг вправо 301 или 404
Зачем? Это кроме вас никому не нужно.
ЧПУ помогает защитится от атак на mysql, если смотреть именно в этом профиле... а остальные жёсткие правила... ну если у вас куча времени, то пожайлуста.