我的网站上有两种类型的标题,因此我不想为每种类型的标题创建2个包含文件,而是创建一个包含if / else语句的包含文件,该文件将为每个标题显示正确的标题类型页。
以下是" testpage.php"的代码:
<?php
$testpage="testpage.php";
$currentpage = $_SERVER['SCRIPT_FILENAME'];
?>
<!DOCTYPE html>
<html>
<head>
<title>testpage</title>
</head>
<body>
<?php include_once('include/header.php'); ?>
</body>
</html>
以下是包含文件的代码&#34; header.php&#34;:
<?php
if($currentpage==$testpage) {?>
<p>Woaw!!! You are a genius. you should work for NASA</p>
<?php }else{ ?>
<p>this doesn't seem to work. Try something else.</p>
<?php }
?>
到目前为止,我已经尝试过这个:
$currentpage = $_SERVER['SCRIPT_FILENAME'];
$currentpage = $_SERVER['PHP_SELF'];
$currentpage = $_SERVER['REQUEST_URI'];
$currentpage = __FILE__;
我已尝试过我的XAMPP本地服务器,以及我的&#34; bluehost&#34;直播服务器,我只是不能让它工作。 另外,我在github上创建了一个小测试来测试,所以如果你想,你可以看看,这里是链接:https://github.com/nobody7/test001
所以,如果您有任何建议,请告诉我们,我们将非常感谢您的帮助。
由于
答案 0 :(得分:0)
来自http://www.php.net/manual/en/reserved.variables.server.php
$_SERVER['REQUEST_URI']
是用户输入地址栏的网址减去主机名和协议(例如对http://example.com/my/web/site/123的请求,将返回/my/web/site/123
),通常是人们用于在使用Front Controller时区分不同页面,因为前端控制器意味着所有请求首先通过单个PHP脚本。
$_SERVER['PHP_SELF']
和$_SERVER['SCRIPT_FILENAME']
会显示您执行的 initial 脚本的文件名,它们几乎是一样的。因此,如果您向http://example.com/abc.php发出了请求,那么这2个变量会将文件路径返回到abc.php
(例如/var/www/abc.php
),即使您在包含的文件中执行此操作,它也会显示文件路径foe { {1}}。
abc.php
将显示您所在的当前文件,这与上面的类似,但它将显示您当前所在文件的文件路径,即使是包含的文件也是如此。因此,如果您在__FILE__
内添加了header.php
,并且在abc.php
内使用了__FILE__
,则会将文件路径返回到header.php
。这可能不是你所需要的。
你的尝试几乎就在那里,但因为header.php
返回文件的完整路径,你需要以某种方式只得到它的文件名部分,幸运的是有一个内置函数已经{{3} }。因此,您只需要更改一些代码:
$_SERVER['SCRIPT_FILENAME']