Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/262.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如果url是主页(/或index.php),请执行此操作_Php - Fatal编程技术网

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

如果url是主页(/或index.php),请执行此操作,php,Php,我试图使用以下代码隐藏我主页上的某些内容: <?php $homeurl = 'index.php'; $homepage = "/"; $currentpage = $_SERVER['REQUEST_URI']; if($currentpage == $homepage or $currentpage == 'index.php') { echo 'no content'; } else {

我试图使用以下代码隐藏我主页上的某些内容:

<?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是非常基本的,所以请原谅我

您只需使用PHP magic常量和basename()

这就是逻辑

if( basename(__FILE__) == "index.php" ) {
  //Hide content
} else {
  //Show content
}
比如,

http://localhost/test/
index.php

http://localhost/test/index.php
index.php

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

$homeurl = '/index.php';

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

谷歌似乎让旧的SO页面漂浮不动,所以请原谅我迟来的回复:) 我认为检测我们是否在主页上的更好解决方案如下:

function isHomepage() {
  $page = basename($_SERVER['PHP_SELF']);
  return $page === 'index.php';
}
上面的代码无论是放在主页文件本身中还是放在一些包含的页面中(与
\uuuuuuuuuuu文件
不同),都可以工作,如果页面的URL中没有明确的
index.php
,例如
http://example.com/app/
仍能正常工作


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

想象一下,如果他正在重写,任何请求都将转到
index.php
,因此您的代码将始终执行
隐藏内容
OP没有指定他们使用
index.php
作为路由器。那么他为什么使用
else
语句呢?谢谢!这么简单。。。就像我现在需要的那样工作!
function isHomepage() {
  $page = basename($_SERVER['PHP_SELF']);
  return $page === 'index.php';
}