我有一个应用程序,其中我创建了一个header.php
,这显然适用于应用程序中包含在其他每个页面之上的所有页面。此头文件包含html
头标记和DOCTYPE
声明等,以及每个页面所需的一些常见JS和CSS文件。但是根据页面的不同,我想要包含一些特定的文件。
现在,我如何根据请求header.php
的网址包含特定的JS或CSS文件。
我尝试在头文件顶部使用$_SERVER['PHP_SELF']
来获取网址,但它无效。
请使用在这种情况下应该使用的最佳技术。
示例代码
header.php
<?php
include (dirname(__FILE__) . "/includes/functions.php");
$url = $_SERVER['REQUEST_URI'];
?>
<!DOCTYPE html>
<html lang="en">
<head>
<title>My APP</title>
<meta charset="utf-8" />
<meta name="robots" content="noodp, noydir" />
<meta http-equiv="X-Frame-Options" content="deny" />
<link rel="stylesheet" href="css/main.css" type="text/css" />
<script src="js/main.js"></script>
<?php
if($url == "teachers.php"){
echo "<script src='js/teachers.js'></script>";
}
?>
</head>
<body>
答案 0 :(得分:3)
您正在寻找的阵列是超级全球$_SERVER
。它有所有的信息。更具体地说:$_SERVER['REQUEST_URI']
。
$_SERVER['REQUEST_URI']
给出完整路径,包括斜杠和任何GET请求。在您的情况下(如果teachers.php
在您的服务器根目录中,并且您没有获取任何内容),它将保留/teachers.php
,并且您正在与teachers.php
进行比较。
$_SERVER['SCRIPT_FILENAME']
获取正在执行的脚本,这就是您正在寻找的内容。
您可以使用basename
过滤出路径:
$url = basename($_SERVER['SCRIPT_FILENAME']);
顺便说一句,@ hendyanto的解决方案也很好。它肯定对文件名更改很有用。
答案 1 :(得分:2)
在页面上创建一个包含header.php的变量,稍后检查header.php中的变量以确定要做什么。
实施例
home.php中的(将调用header.php的示例页面)
<?php
$page_code = "home";
include ("header.php");
/*Rest of your code*/
?>
在header.php中
<?php
switch ($page_code) {
case 'home':
echo "include js and css here..";
break;
case 'profile':
echo "include js and css here..";
break;
default:
# code...
break;
}
?>
答案 2 :(得分:0)
我不知道它是否完美,但我在我的应用程序中使用它
anypage.php
<?php
$js= "path/jstoinclude.js";
include "header.php";
?>
在header.php中
<?php
//your code
if(isset($js)){
echo "<script src='".$js."'></script>";
}
?>
通过这种方式,您可以将不同的js,css文件包含到不同的页面