Как мне написать функцию, которая сообщает мне, что я в данный момент просматриваю домашнюю страницу (/index.php)?

#php #function #url

#php #функция #url

Вопрос:

PHP:

 function is_homepage()
{
}

if(is_homepage())
{
    echo 'You are on the homepage';
}
else
{
    echo 'You are not on the homepage';
}
  

Объяснение:

is_homepage, должна работать во всех этих случаях:

  • http://www.domain.com
  • https://www.domain.com
  • http://domain.com
  • http://domain.com/?param=value
  • http://domain.com/index.php?param=value

Где это не должно работать:

  • http://subdomain.domain.com
  • http://domain.com/otherfile.php?param=value
  • и т.д.

Комментарии:

1. Почему бы просто не установить флаг на странице PHP, которую вы используете в качестве домашней страницы?

2. О, я думаю, это тоже сработало бы, лол, просто подумал, что было бы лучше сделать это по-другому. Спасибо!

3. посмотрите в $_SERVER переменную для всех этих страниц, что-то будет общим. попробуйте это

Ответ №1:

выполните

print_r($_SERVER);

и вы увидите все данные, которые помогут вам достичь этого.

Я бы использовал

$_SERVER[‘PHP_SELF’]

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

Ответ №2:

Конечно, это зависит от того, как выложен ваш PHP-скрипт. Хотя в большинстве случаев сработало бы следующее решение:

 $_SERVER['SCRIPT_NAME'] == '/index.php'
  

Комментарии:

1. как насчет того, когда вы находитесь на поддомене?

2. Это никак не повлияет на поведение скрипта, поскольку SCRIPT_NAME возвращает текущее имя скрипта.

Ответ №3:

 function is_homepage()
{
  return ( ( $_SERVER['HTTP_HOST'] == 'www.domain.com' || $_SERVER['HTTP_HOST'] == 'domain.com') amp;amp; substr( $_SERVER['REQUEST_URI'], 0, 9 ) == 'index.php' );

}

if(is_homepage())
{
    echo 'You are on the homepage';
}
else
{
    echo 'You are not on the homepage';
}