Регулярка или альтернативный способ (разные урлы)?

defence

Деклассированный элемент
Регулярка или альтернативный способ (разные урлы)?

Привет всем! Хочу со знающими людьми посоветоваться. Значит есть файл top.php с так называемой "шапкой" сайта. В нем два куска HTML-кода, например:

PHP:
<td><img src=logo1.gif></td>
и
PHP:
<td><img src=logo2.gif></td>
Подскажите, плз, как осуществить такую вот задачку:

чтобы при http://mysite.ru, http://mysite.ru/ и http://mysite.ru/index.php выводился первый кусок кода, а при
http://mysite.ru/index.php?choto=1 или http://mysite.ru/page.php выводился бы второй кусок?

ЗЫ: Поиск, кончно, рулит... Но по моему вопросу я ничего не нашел...

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

HEm

Сетевой бобер
до невозможности банальный if
http://www.php.net/manual/ru/language.control-structures.php#control-structures.if

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

defence

Деклассированный элемент
HEm
до невозможности банальный if
про это я уже думал, но как-то громоздко получается...

Условие-то простое - при одних типах урлов в файле top.php выводится одно, при остальных - другое. Только я чо-то туплю...
 

defence

Деклассированный элемент
boombick
Мне кажется да, потому что условий несколько
 

HEm

Сетевой бобер
ок, задаю вопрос - правильно ли я понимаю, что в случае, если вызывается index.php без параметров, то показывается один код хтмл, а во всех других случаях (index.php с любыми параметрами, любая другая страница) - другой?
Если так, то в top.php должен быть примерно такой код:
PHP:
if (($_SERVER["SCRIPT_NAME"]=="/index.php")&&(!isset($_POST))&&(!isset($_GET))) {
echo "html1";
} else {
echo "html2";
}
-~{}~ 27.09.06 14:52:

defence
1) в данном случае вообще трудно представить себе корректный код регулярки проще приведенного условия
2) практически ВСЕГДА, если есть возможность обойтись без регулярных выражений - обходись без них
 

defence

Деклассированный элемент
HEm
Да ты правильно понимаешь, только в первом случае не только index.php, а еще и чисты урл должен быть...

Только что-то не работает... ((

-~{}~ 27.09.06 14:58:

HEm
Спасибо за советы... Буду разбираться...
 

HEm

Сетевой бобер
defence
отсутствие переменных $_POST и $_GET гарантирует, что урл "чистый"

если ты имеешь в виду, что www.site.ru и www.site.ru/index.php оба подпадают под первое условие, то они подпадают, для проверки сделай index.php с кодом
PHP:
<? phpinfo(); ?>
и вызови его с разными урлами - приглядись к $_SERVER[SCRIPT_NAME] и $_SERVER[PHP_SELF] (я не помню, в каких случаях они различаются)
 

defence

Деклассированный элемент
HEm
Прошу прощения, я имею ввиду, что ничего не меняется...
 

defence

Деклассированный элемент
HEm
debugging у меня постоянно включен, пока ковыряюсь... но ни ошибок ни предупреждений не выдает...
 

bgm

&nbsp;
Ну ёлы-палы, сколько советов...
$_SERVER['REQUEST_URI'] проверять надо...
 

defence

Деклассированный элемент
Спасибо, братцы за советы... Буду копать...
 
Сверху