PHP
 Computer >> コンピューター >  >> プログラミング >> PHP

HTML内へのPHP埋め込みとエスケープの基本を徹底解説

定義と使い方

PHPファイルでは、HTMLドキュメントの中に <?php?> のタグで囲まれたコードを混在させることができます。PHPタグの外側にある部分はサーバー側のパーサーによって無視され、そのままクライアントのブラウザへ送信されて解釈されます。つまり、1つのHTMLドキュメントの中に、複数のPHPブロックを自由に配置できるのです。

基本構文

<p>
HTMLブロック
</p>
<?php
// PHPブロック
..
..
?>
<p>
HTMLブロック
</p>
<?php
// PHPブロック
..
..
?>
<p>
HTMLブロック
</p>

パーサーはPHPの開始タグ(<?php)を検出するたびに処理を開始し、終了タグ(?>)に到達するまで出力をレンダリングします。コード内に条件分岐が含まれている場合は、パーサーが条件を評価し、実行すべきブロックとスキップすべきブロックを判断します。

終了タグ以降は、次の開始タグが現れるまですべてHTMLとして扱われ、ブラウザ側で処理されます。

対応するPHPバージョン

この仕組みは、すべてのバージョンのPHPで利用可能です。

以下の例は、HTMLの中にPHPコードを埋め込んだ基本的な形を示しています。

サンプルコード

<html>
<body>
<!-- HTMLコード -->
<h3>Hello World</h3>
<!-- PHPコード -->
<?php
echo "Hello World in PHP";
?>
<!-- ここからHTMLコード -->
<p>Hello world again</p>
<?php
echo "Hello World again in PHP";
?>
</body>
</html>

出力結果

上記のコードを実行すると、次のような結果になります。

Hello World
Hello World in PHP
Hello world again
Hello World again in PHP

続いて、HTMLとPHPのコードを混在させた実践的な例を見てみましょう。条件分岐を使うことで、HTMLの出力内容を動的に切り替えることができます。

条件分岐を使ったサンプル

<?php $marks = 10; ?>
<h1>条件分岐を使った例</h1>
<?php if ($marks >= 50): ?>
<h2 style="color:blue;">結果:合格</h2>
<?php else: ?>
<h2 style="color:red;">結果:不合格</h2>
<?php endif; ?>

出力結果

$marks が 10 の場合、次のように表示されます。

条件分岐を使った例
結果:不合格

変数 $marks を 60 に変更して再度実行すると、条件が true になるため出力が切り替わります。

条件分岐を使った例
結果:合格

このように、PHPの代替構文(if〜endif)を活用すると、HTMLの中に自然な形でロジックを組み込むことができ、テンプレート的なコードをすっきりと記述できます。

  1. HTMLのabbrタグとは?頭字語・略語のマークアップ方法を実例付きで解説

    HTMLの<abbr>要素は、頭字語(アクロニム)や略語をマークアップするために使用される要素です。HTML5では<acronym>タグが廃止されたため、現在は<abbr>タグを使うのが標準的な方法となっています。 <abbr>タグにはtitle属性を指定でき、要素にカーソルを合わせると正式名称がツールチップとして表示されます。これにより、読者にとってわかりやすいコンテンツになるだけでなく、検索エンジンやスクリーンリーダーにもその意味を正しく伝えることができます。 頭字語(Acronym)の例 B2B:Business to Business(

  2. HTMLのacronym(頭字語)タグの使い方とHTML5での代替方法

    HTMLのacronym(頭字語)タグとは HTMLの<acronym>タグは、頭字語(アクロニム)を定義するために使用される要素です。頭字語とは、複数の単語の頭文字を組み合わせて作られた略語のことを指します。 注意:HTML5では<acronym>タグはサポートされていません。代わりに<abbr>タグを使用することが推奨されています。 頭字語の具体例 B2B:Business to Business(企業間取引) B2C:Business to Consumer(企業と消費者間の取引) CMS:Content Management System(コンテン