|
|
|
| Всем привет. Нужна ваша помощь.
Есть регулярка:
preg_match('/([a-z]+)([1-9]\d*)/', $part_url, $match)
|
Которая пропускает такие части урлов и разбивает их на группы:
dir2 [0]=>dir [1]=>2
cat37 [0]=>cat [1]=>37
...
|
Нужно, подправить так регулярку, чтобы она не пропускала такие части:
Спасибо. | |
|
|
|
|
|
|
|
для: TetRiska
(13.08.2014 в 12:35)
| | Если речь о разборе url, то почему не parse_str()? | |
|
|
|
|
|
|
|
для: 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 не пропускало. | |
|
|
|
|
|
|
|
для: TetRiska
(13.08.2014 в 12:48)
| | И зачем тогда вам вся строка, если требуется только ее хвост? Берите последний, а в нем уже текст и цифры, например
<?
$url = current(array_reverse(explode('-', rtrim('news-page1.html', '.html'))));
preg_match('/([a-z]*)(\d*)/i', $url, $url);
|
Либо пишите шаблон, который будет искать в том, что после первого дефиса с конца строки. | |
|
|
|
|
|
|
|
для: confirm
(13.08.2014 в 13:03)
| | спасибо, кажись разобрался | |
|
|
|