12

だから、私は学校の課題として第一次世界大戦についてのサイトを作っています、そして私はこれをすべての文書に表示させたいです:

<!DOCTYPE html>

<html>
<head>
    <title>1914</title>
    <script src="modernizr-1.5.js"></script>
    <link href="styles.css" type="text/css" rel="stylesheet" />
    <meta charset="utf-8" />

</head>
<body>
  <div id="container">
    <header>
    <img src="images/banner.png" alt="World War I" style="border: none"/>
    <nav>
        <ul>
        <a href="index.htm"><li><span>Home</span></li></a>
        <a href="1914.htm"><li><span>1914</span></li></a>
        <a href="1915.htm"><li><span>1915</span></li></a>
        <a href="1916.htm"><li><span>1916</span></li></a>
        <a href="1917.htm"><li><span>1917</span></li></a>
        <a href="1918.htm"><li><span>1918</span></li></a>
        </ul>
    </nav>
    </header>
    <section>
    <article>
    <br style="clear: both" />
    </article>
    <aside>
    </aside>
    </section>
    <footer style="font-weight: bold; letter-spacing: .1em">
    <a href="citations.htm">Citations</a> &bull;
    <a href="about.htm">About</a>
    </footer>
  </div>
</body>
</html>

これらすべてをコピーして各ドキュメントに貼り付けるのはちょっとばかげていると思います。1つの単語やタグを変更したいだけの場合は、慎重に各ページを個別に変更してください。これをtemplate.htm(または同様のもの)に入れて、phpまたはjavascriptコードにこれを取得させ、要求されたファイルからすべてを<article>タグ内に挿入する方法はありますか?私は多くのphpを知らないので、これはおそらくあなたの教祖にとっては簡単なことですが、助けていただければ幸いです。

4

4 に答える 4

24

phpの使用には以下が含まれます:

これをtop.phpとして保存します

<html>
<head>
<title><?php echo $title; ?></title>
<script src="modernizr-1.5.js"></script>
<link href="styles.css" type="text/css" rel="stylesheet" />
<meta charset="utf-8" />

</head>
<body>
<div id="container">
<header>
<img src="images/banner.png" alt="World War I" style="border: none"/>
<nav>
    <ul>
    <a href="index.htm"><li><span>Home</span></li></a>
    <a href="1914.htm"><li><span>1914</span></li></a>
    <a href="1915.htm"><li><span>1915</span></li></a>
    <a href="1916.htm"><li><span>1916</span></li></a>
    <a href="1917.htm"><li><span>1917</span></li></a>
    <a href="1918.htm"><li><span>1918</span></li></a>
    </ul>
</nav>
</header>
<section>

これをbottom.phpとして保存します

<aside>
</aside>
</section>
<footer style="font-weight: bold; letter-spacing: .1em">
<a href="citations.htm">Citations</a> &bull;
<a href="about.htm">About</a>
</footer>
</div>
</body>
</html>

次に、個々のページは次のようになります。

<?php $title = '1914'; include("top.php");?>
//This would be where you would make the changes that need to be made on each page.

<article>
<br style="clear: both" />
</article>

<?php include("bottom.php");?>
于 2012-10-25T15:34:54.307 に答える
8

これらの一般的なテンプレート エンジンの 1 つを検討できます。

  • Smarty (時代遅れになる)

  • Latte (主にNetteコミュニティで使用)

  • Twig (主にSymfonyコミュニティで使用)

  • Mustache (このテンプレート エンジンの公式実装は、20 を超えるプログラミング/スクリプト言語で存在します)

私はMustacheを好む傾向があります。これは主に、公式の JS バージョン公式の Ruby バージョン公式の Java バージョンなどがあるためです。これにより、同じテンプレートのフロントエンドとバックエンドを使用できます。これは、最初にレンダリングされるウィジェットに非常に役立ちます。更新時にフォアグラウンドで再レンダリングされます。

于 2014-03-13T21:16:04.160 に答える
2

コンテンツをファイルabc.phpに入れます

次に、目的のコンテンツが必要な各ページにこれを追加します。

<?php
include("abc.php");
?>

したがって、コードが次の場合:

<nav>
        <ul>
        <a href="index.htm"><li><span>Home</span></li></a>
        <a href="1914.htm"><li><span>1914</span></li></a>
        <a href="1915.htm"><li><span>1915</span></li></a>
        <a href="1916.htm"><li><span>1916</span></li></a>
        <a href="1917.htm"><li><span>1917</span></li></a>
        <a href="1918.htm"><li><span>1918</span></li></a>
        </ul>
    </nav>
    </header>
    <section>
    <article>
    <br style="clear: both" />
    </article>
    <aside>
    </aside>
    </section>

そして、内部の部分<nav>を各ページで繰り返したい場合は、abc.php 内の と (タグを含む) の間にコンテンツを配置<nav></nav>次のようにファイルにabc.phpを含めることができます。

<?php
    include("abc.php");
?>
    </header>
    <section>
    <article>
    <br style="clear: both" />
    </article>
    <aside>
    </aside>
    </section>
于 2012-10-25T15:19:01.363 に答える
0

テンプレート ファイルを 1 つのファイルとして作成します。既に作成されているものとまったく同じですが、コンテンツが必要な場所に PHP 変数を出力します。

例えば:

....
<article>
<?php print $mainContent; ?>
</article>
....

次に、PHP 関数を次のように記述します。

<?php
function insertContentIntoTemplate($mainContent) {
    require_once('/path/to/template.php');
}
?>

これで、関数を呼び出してページごとにコンテンツをテンプレートに渡すだけで、ページ コンテンツをテンプレートに読み込むことができます。

たとえば、1914.php は次のようになります。

<?php
require_once('/path/to/insertFunction.php');

//the text could be loaded from a DB, or from another file, or just as a plain string like this:
$text = "The year was 1914, and the war was just starting.";

insertContentIntoTemplate($text);

?>

おめでとう。これで、(非常に単純ではありますが) 機能するテンプレート システムができました。必要に応じて、変数 / プレースホルダーをテンプレートに追加します。

于 2012-10-25T15:55:59.510 に答える