0

以前にも同様の質問をしましたが、ページを作成するこの「スタイル」について、より具体的な質問があります。
テンプレートには、header.php、page.php、footer.phpの3つのページがあります。1ページでサイトの一部を簡単に編集できるようにするだけでなく、ページごとに追加の機能を追加できるようにしようとしています。私の現在の構造は次のとおりです:
header.php

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Website Name<? if ($title) echo ' &ndash; ' . $title; ?></title>
<!--[if lt IE 9]>
<script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
<![endif]-->
<link rel="stylesheet" type="text/css" href="reset.css">
<link rel="stylesheet" type="text/css" href="style.css">
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>

page.php

<?
$title = 'Page Title';
require_once('includes/header.php');
?>
<!-- Any extra stuff for the header goes here -->
</head>
<body>
Page content goes here.
<? require_once('includes/footer.php'); ?>

footer.php

<footer>
I am a footer
</footer>
</body>
</html>

これは機能しますが、header.phpページにに何も含まれていないため、公開編集可能なヘッダー(メニューなど)を簡単に作成することはできません<body>。ただし、<head>in header.phpを閉じると、ページごとに追加のファイル(ページ固有のJavaScriptなど)を追加できなくなります。私の知る限り、CSSとjavascriptを<body>タグに含めるのは良い考えではありません。タグ
の後に、各ページの上部に追加のファイル(たとえば、menu.php)が必要であり、含まれていると思いますか?<head>しかし、それは読みやすく/自然ではないようです、私はより良い解決策があるに違いないと思いますか?

4

3 に答える 3

2

簡単な解決策の1つは、「header.php」内に$extraHeadersのコンテンツをエコーする行を含めることです。

<!DOCTYPE html>
<html>
<head>
<?php echo $extraHeaders ?>
...

次に、特定のヘッダーを追加するページ(スタイルシート、JavaScriptファイルなど)は、$extraHeaders変数に含めるだけです。

$extraHeaders = '<script type="text/javascript" src="myscripts.js"></script>'

そして、それはそのページのヘッダーに自動的に含まれます。


構文の強調表示の問題を解決し、引用符をエスケープする必要がないようにするために、出力バッファー構文を使用できます。

ob_start();
?>
<your html goes here> Alternatively, you can include an html file here.
<?php
$extraHeaders = ob_get_contents();
ob_end_clean(); 
...

これにより、前に提案したように変数を使用できるようになりますが、構文が強調表示され、何もエスケープする必要はありません。

于 2012-05-06T17:22:12.923 に答える
0

ob_start+ regex({title}またはのようなタグを使用{scripts}して、「ページ」の読み込みの最後にアクセスできます。

于 2012-05-06T17:17:36.620 に答える
0

_autoload()これらすべてのphpファイルをプリロードするスクリプトを作成します。

このようにして、何か新しいものを置くときはいつでも、_autoload()関数を含むスクリプトに移動して、そこで更新することができます。

ところで、タグの最後にjavascriptを配置すること<body>は、実際には良い習慣です。

于 2012-05-06T17:25:34.720 に答える