Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум Регулярные Выражения

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Не пропустить page
 
 автор: TetRiska   (13.08.2014 в 12:35)   письмо автору
 
 

Всем привет. Нужна ваша помощь.

Есть регулярка:
preg_match('/([a-z]+)([1-9]\d*)/', $part_url, $match)

Которая пропускает такие части урлов и разбивает их на группы:
dir2  [0]=>dir [1]=>2
cat37 [0]=>cat [1]=>37
...

Нужно, подправить так регулярку, чтобы она не пропускала такие части:
page2
page3
...

Спасибо.

  Ответить  
 
 автор: confirm   (13.08.2014 в 12:40)   письмо автору
 
   для: TetRiska   (13.08.2014 в 12:35)
 

Если речь о разборе url, то почему не parse_str()?

  Ответить  
 
 автор: TetRiska   (13.08.2014 в 12:48)   письмо автору
 
   для: confirm   (13.08.2014 в 12:40)
 

Не совсем разбор, как по мне.

Возьмем допустим новости на сайте моем, будут такие урлы:
/news.html - главная страничка
/luchi-kran-2014-goda-new21.html - сама новость, где new - некий идентификатор, что это новость, а 21 - ид новости
/news-page2.html - вторая страничка раздела новости

Получается, здесь я разбиваю урл на части:
$ex = explode('-', $data);

А здесь я проверяю и разбиваю на части, дабы потом верно оперировать:
if(preg_match('/([a-z]+)([1-9]\d*)/', end($ex), $match))
{
//обрабатываю урлы подобного типа /luchi-kran-2014-goda-new21.html
}
else
{
//обрабатываю обычные урлы /news.html
//вот сюда и должен попасть урл /news-page2.html
}

Вот мне и нужно подправить регулярку, чтобы page не пропускало.

  Ответить  
 
 автор: confirm   (13.08.2014 в 13:03)   письмо автору
 
   для: TetRiska   (13.08.2014 в 12:48)
 

И зачем тогда вам вся строка, если требуется только ее хвост? Берите последний, а в нем уже текст и цифры, например

<?
$url 
current(array_reverse(explode('-'rtrim('news-page1.html''.html'))));
preg_match('/([a-z]*)(\d*)/i'$url$url);


Либо пишите шаблон, который будет искать в том, что после первого дефиса с конца строки.

  Ответить  
 
 автор: TetRiska   (13.08.2014 в 13:26)   письмо автору
 
   для: confirm   (13.08.2014 в 13:03)
 

спасибо, кажись разобрался

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования