Если URL является домашней страницей (/ или index.php), сделайте это
Я пытаюсь скрыть контент на своей домашней странице с помощью этого кода:
<?php
$homeurl = 'index.php';
$homepage = "/";
$currentpage = $_SERVER['REQUEST_URI'];
if($currentpage == $homepage or $currentpage == 'index.php') {
echo 'no content';
} else {
echo 'content';
}
?>
Это работает, если URL-адрес просто www.mysite.com, но не если URL-адрес www.mysite.com/index.php - мне нужно скрытое содержимое в обоих случаях. Мой PHP очень простой, поэтому, пожалуйста, прости меня!
3 ответа
Так что вам нужно добавить /
до index.php
тоже:
$homeurl = '/index.php';
Ваше решение по обнаружению индекса выглядит немного странно, но не хватает кода (например, внешнего интерфейса), чтобы помочь с ним.
Вы можете просто использовать магическую константу PHP и basename ()
echo basename(__FILE__);
Вот логика;
if( basename(__FILE__) == "index.php" ) {
//Hide content
} else {
//Show content
}
Например;
http://localhost/test/
index.php
http://localhost/test/index.php
index.php
Кажется, что Google поддерживает старые SO-страницы на плаву, поэтому извините за поздний ответ :) Я думаю, что лучшее решение для определения того, находимся ли мы на главной странице, выглядит примерно так:
function isHomepage() {
$page = basename($_SERVER['PHP_SELF']);
return $page === 'index.php';
}
Приведенный выше код будет работать независимо от того, размещен ли он в самом файле домашней страницы или на какой-либо включенной странице (в отличие от
__FILE__
), и это также будет работать, если URL-адрес страницы явно не указан в нем, например
http://example.com/app/
все равно будет работать корректно.
Однако, если вы используете маршрутизацию и
index.php
является страницей входа для ваших контроллеров, выше всегда будет возвращаться
true
. В этом случае вы должны разобрать
$_SERVER['REQUEST_URI']
вместо.