Как выводить в зависимости от условий

Poster

Новичок
Как выводить в зависимости от условий

Доброго дня!

Есть порезанный в массив $_SERVER['REQUEST_URI']:
PHP:
$u = explode("/", trim($_SERVER['REQUEST_URI'], "/"));
Вот. теперь пробую сделать вывод новостей на странице, но возможны много случаев, когда:

/news/
/news/6234.html

/news/3/
/news/3/98657.html

/news/specials/
/news/specials/3/
/news/specials/3/4563.html

3 - "номер страницы" пагинатора.

Так вот, такой вопрос у меня - есть ли разработанные спрособы перебирать все варианты массива $u (меняется count($u)) автоматически(может быть в цикле)?

а то вот просто логически как-то не получается описать каждый случай и выводить под него то что нужно - то ли список всех новостей, то ли саму новость.

Натолкните на идею пожалуйста.
 

kvf77

Red Devil
Poster

поиск готовых решений - фотопик.

чтокасается перебора - это не есть правильно
нужно четко установить в URL порядок следования данных, тогда тебе не придется заниматься фигней и перебирать данные, это не эффективно
 

Necromant

Новичок
Перебор всех еллементов масива

$str='';
for ($i=0;$i<sizeof($u);$i++) {
echo $u[$i].'<br>';
//тут делается , хз что надо
}
 

SelenIT

IT-лунатик :)
Имхо, если указан конкретный id новости и порядок следования новостей в разделе жестко задан (напр. датой), то адрес типа /news/specials/3/4563.html не имеет особого смысла. Номер страницы в этом случае легко вычислить по id-у новости.

Опять же имхо, "расширение" .html удобно использовать как признак конкретного документа, а для урлов вида "как бы каталог" выводить список.
 

Poster

Новичок
Вот что пишет Дмитрий Лебедев:

... Не буду гадать, как у них сделано, напишу, как бы я делал обработку адреса.
PHP:
if (preg_match("/([a-z]+)/(d{4})/(d{2})/(d{2})/([a-z]+)/A", $url, $match)) {
  $request = "SELECT news_id FROM news, rub WHERE news.rub_id=rub.rub_id AND rub_address='". $match[1]. "' AND news_date LIKE '". $match[2]. "-". $match[3]. "-". $match[4]. "' AND news_address='". $match[5]. "'";
Этот запрос делается просто для проверки, есть ли такая новость в базе. А потом в зависимости от результата выдается либо страница с новостью, либо какая-нибудь ругань...
(c) Лебедев http://phpclub.ru/detail/article/2001-01-16




Вот в этом примере формат REQUEST_URI заранее известеи и не меняется, анализ и вывод делается просто и легко.

А у меня очень мутно, согласен.
Буду описыать все возможные варианты юри.
 
Сверху