条件付きで HTML を出力してページを生成したいのですが、PHP 4 以降で複数行の HTML スニペットをエコーする最も簡単な方法は何ですか? Smarty のようなテンプレート フレームワークを使用する必要がありますか?
echo '<html>', "\n"; // I'm sure there's a better way!
echo '<head>', "\n";
echo '</head>', "\n";
echo '<body>', "\n";
echo '</body>', "\n";
echo '</html>', "\n";
ベストアンサー1
PHP で HTML をエコーする方法はいくつかあります。
1. PHPタグの間
<?php if(condition){ ?>
<!-- HTML here -->
<?php } ?>
2. エコーで
if(condition){
echo "HTML here";
}
エコーでは、HTML で二重引用符を使用する場合は、次のように一重引用符のエコーを使用する必要があります。
echo '<input type="text">';
または、次のようにエスケープすることもできます。
echo "<input type=\"text\">";
3. ヒアドキュメント
4. Nowdocs (PHP 5.3.0 以降)
テンプレートエンジンは、主に HTML を含むドキュメントで PHP を使用するために使用されます。実際、PHP の本来の目的はテンプレート言語になることでした。そのため、PHP では短いタグなどを使用して変数をエコーすることができます (例<?=$someVariable?>
)。
構文をさらに簡潔にする他のテンプレート エンジン (Smarty、Twig など) もあります (例{{someVariable}}
)。
テンプレートエンジンを使用する主な利点は、デザイン(プレゼンテーションロジック) をコーディングから分離する (ビジネスの論理)。また、長期的にはコードがよりクリーンになり、メンテナンスも容易になります。
他にご質問がございましたら、お気軽にコメントを残してください。
これらのことについてさらに詳しく知りたい方は、PHPドキュメント。
注記:PHP の短縮タグは<?
、php.ini 構成ファイルのディレクティブ?>
で有効になっている場合、または PHP がオプションで構成されている場合にのみ使用できるため、推奨されません。short_open_tag
--enable-short-tags
5.4以降の設定に関係なく利用可能です。