首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >包括基于URL的javascript文件

问包括基于URL的javascript文件
EN

Stack Overflow用户
提问于 2013-09-05 06:54:34
回答 3查看 1.8K关注 0票数 1

我有一个应用程序,在这个应用程序中,我创建了一个header.php,这个应用程序中的所有页面都很常见,我在其他页面上都包含了这个应用程序。该头文件包含html头标记和DOCTYPE声明等,以及每个页面所需的一些常见JS和DOCTYPE文件。但有一些特定的文件,我想包括根据页面。

现在,如何根据请求header.php的url包括一个特定的JS或CSS文件。

我试图使用头文件顶部的$_SERVER['PHP_SELF']来获取url,但是它没有工作。

在这种情况下,请用最好的技巧提出建议。

示例代码

header.php

代码语言:javascript
复制
 <?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>
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-09-05 06:59:02

您要寻找的数组是超全局$_SERVER。里面有所有的信息。更具体地说:$_SERVER['REQUEST_URI']。

$_SERVER['REQUEST_URI']给出了完整的路径,包括斜杠和任何GET请求。在您的情况下(如果teachers.php位于您的服务器根目录中,而您没有得到任何信息),它将保存/teachers.php,您将与teachers.php进行比较。

$_SERVER['SCRIPT_FILENAME']获得正在执行脚本的,这是您似乎正在寻找的。

您可以使用basename过滤出路径:

代码语言:javascript
复制
$url = basename($_SERVER['SCRIPT_FILENAME']);

顺便说一下,@hendyanto的解决方案也不错。对于文件名的更改,它肯定是健壮的。

票数 3
EN

Stack Overflow用户

发布于 2013-09-05 07:00:52

在页面上创建一个包含header.php的变量,稍后,检查header.php中的变量以确定要做什么。

示例

在home.php中(将调用header.php的示例页面)

代码语言:javascript
复制
<?php
$page_code = "home";
include ("header.php");

/*Rest of your code*/

?>

在header.php中

代码语言:javascript
复制
<?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
EN

Stack Overflow用户

发布于 2013-09-05 07:22:21

我不知道它是否完美,但我在我的应用程序中使用它

anypage.php

代码语言:javascript
复制
<?php
$js= "path/jstoinclude.js";
include "header.php";
?>

在header.php中

代码语言:javascript
复制
<?php
//your code
if(isset($js)){
echo "<script src='".$js."'></script>";
}
?>

通过这种方式,您可以将单独的js、css文件包含到不同的页面中。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18629661

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档