1

header.php私は、他のすべてのページの上に含めるアプリ内のすべてのページに明らかに共通する を作成したアプリケーションを持っています。このヘッダー ファイルには、htmlhead タグやDOCTYPE宣言など、およびすべてのページに必要ないくつかの一般的な JS および CSS ファイルが含まれています。しかし、ページによっては含めたい特定のファイルがいくつかあります。

header.phpでは、リクエスト元の URL に基づいて特定の JS または CSS ファイルを含めるにはどうすればよいでしょうか。

URLを取得するためにヘッダーファイルの先頭で使用しようとし$_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>
4

3 に答える 3

3

探している配列はスーパーグローバル$_SERVERです。それはすべての情報を持っています。より具体的には: $_SERVER['REQUEST_URI'].

$_SERVER['REQUEST_URI']スラッシュと GET リクエストを含む完全なパスを提供します。あなたの場合(teachers.phpサーバーのルートにあり、何もGETしない場合)、それは保持さ/teachers.phpれ、 と比較していteachers.phpます。

$_SERVER['SCRIPT_FILENAME']実行中のスクリプトを取得します。これは、探しているようです。

basenameパスを除外するために使用できます。

$url = basename($_SERVER['SCRIPT_FILENAME']);

ちなみに、@hendyanto の解決策も良いです。ファイル名の変更に対して確かに堅牢です。

于 2013-09-05T06:59:02.067 に答える
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;
}
?>
于 2013-09-05T07:00:52.560 に答える
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ファイルを別々のページに含めることができます

于 2013-09-05T07:22:21.567 に答える