0

ASP.Net の優れた点の 1 つはsite.master、サイトから繰り返されるすべての HTML/コードを保持するファイルを設定し、個々の Web サイト ページからその内容を変更できることです。(たとえば、<title>すべてのページのタグを変更したり、ドキュメントの に他のものを追加したりし<head>ます。)

過去に PHP でサーバー サイド インクルードを使用して、重複する HTML/コード (ドキュメントの上部、メイン ナビゲーション、フッターなど) を削除しましたが、ページのコンテンツを変更することはできません。

site.masterPHP で型機能を実装する方法はありますか? そうでない場合、ページのタイトル、強調表示されたナビゲーションなどを変更しながら、繰り返される HTML/コードを削除する良い方法は何ですか?

ありがとう。

4

4 に答える 4

4

これは単にテンプレート エンジンと呼ばれ、php 用のエンジンがたくさんあります。

Smarty もその 1 つです。

于 2011-05-08T17:32:12.853 に答える
2

共通のフラグメントを取り込む最も簡単な方法はrequire()、現在のファイル内に他のファイルを含めることができる を使用することです。

使用方法の例:

header.php - 再利用可能なフラグメント

<div class="header">
    <h1><?= $pageTitle ?></h1>
</div>

pageContents.php

<body>
<?php
$pageTitle = 'Check it out, the Foobar page!';
require('header.php');
?>
blah blah
</body>
于 2011-05-08T17:22:36.437 に答える
1

あなたが探しているのは、PHP 用に構築されたテンプレート エンジンです。ASP は、参照している機能 (つまり、テンプレート、メンバーシップ プロバイダーなど) を提供するテンプレートが組み込まれたフレームワークです。

PHP で同じことを行うには、フレームワークまたはテンプレート エンジンを使用する必要があります。

いくつかのサンプル:

于 2011-05-08T18:00:07.350 に答える
0

includePHP にはそのような機能はありません。コンポーネントを別のファイルに移動し、またはrequire関数を使用してメイン ファイルに含めることができます。

ただし、一部のフレームワークはそのような機能を提供 (シミュレート) します。たとえば、cakePHP では、ページを出力できるレイアウト ファイルを作成できます。

于 2011-05-08T17:22:37.230 に答える