如果url是主页(/或index.php),请执行此操作

时间:2014-09-04 11:58:28

标签: php

我正在尝试使用以下代码在我的主页上隐藏一些内容:

<?php   

  $homeurl = 'index.php';                               
  $homepage = "/";
  $currentpage = $_SERVER['REQUEST_URI'];

  if($currentpage == $homepage or $currentpage == 'index.php') {
  echo 'no content';
  } else {
    echo 'content';
  }                                     

?> 

如果网址只是www.mysite.com,则有效,但如果网址为www.mysite.com/index.php则无效 - 我需要在两个实例中隐藏内容。 我的PHP非常基础所以请原谅我!

3 个答案:

答案 0 :(得分:3)

因此,您需要在/之前添加index.php

$homeurl = '/index.php';

您检测索引的解决方案看起来有点奇怪,但没有足够的代码(例如前端)来帮助。

答案 1 :(得分:1)

您可以使用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

答案 2 :(得分:0)

Google 似乎保留了旧的 SO 页面,所以请原谅我迟到的回复:) 我认为检测我们是否在主页上的更好解决方案是这样的:

function isHomepage() {
  $page = basename($_SERVER['PHP_SELF']);
  return $page === 'index.php';
}

无论是放在主页文件本身还是在某些包含的页面中(与 __FILE__ 不同),上面的代码都可以工作,并且如果页面的 URL 中没有明确包含 index.php,它也可以工作它,例如 http://example.com/app/ 仍然可以正常工作。

但是,如果您使用路由并且 index.php 是您的控制器的入口页面,则上述内容将始终返回 true。在这种情况下,您应该解析 $_SERVER['REQUEST_URI']