Очень часто встречаю на различных форумах такой вопрос:
Как сделать так, чтобы PHP-скрипт выполнялся только на определенной странице сайта?
На статичных сайтах эта проблема решается легко — скрипт просто вставляется в нужную html-страницу. А что делать в случае использования какой-то CMS, когда скрипт автоматически инклудится на всех страницах? (обычно этот вопрос задается качательно блогов на движке WordPress)
И для этого случая есть простое решение.
Адрес текущей страницы (без http:// и имени домена) находится в переменной $_SERVER['REQUEST_URI']. Например, для этой страницы ее содержимое будет равно /2009/03/vypolnyaem-skript-tolko-na-opredelennoj-stranice/.
Чтобы выполнять скрипт только на определеннной странице нужно просто сравнивать содержимое этой переменной с интересующим значением:
<?php if ($_SERVER['REQUEST_URI'] == '/2009/03/vypolnyaem-skript-tolko-na-opredelennoj-stranice/')В этом случае все, что находится между фигурными скобками будет выполняться только на странице http://2lx.ru/2009/03/vypolnyaem-skript-tolko-na-opredelennoj-stranice/
{
// Ваш скрипт
while (1) echo "Hello, world!";
}
?>
А что если нужно выполнять скрипт опять-же не на всех страницах, а только на тех, в названии которых встречается только определенный текст?
В этом случае отца русской демократии спасет PHP-функция strstr (). На вход этой функции передается исходная строка и строка-паттерн, чье наличие нужно проверить в исходной строке. Если строка-паттерн встречается в исходной строке, то функция возвращает true, а если нет — false.
<?php if (strstr($_SERVER['REQUEST_URI'], '/2009'))
{
// Ваш скрипт
while (1) echo "Hello, world!";
}
?>
Код между фигурными скобками будет выполняться только на тех страницах, названия которых начинаются с 2009.
Остались вопросы? Задавайте!
ЗЫ: А Вы не забыли подписаться на RSS?
вопросы есть)))
нахрена while (1) ?
Для оооочень громкого приветствия мира))
Каждый новоиспеченый программер обязан поприветствовать мир ^_^