こんにちは!フリーエンジニアのせきです。
PHPはウェブページにプログラムを組み込むためのプログラミング言語なので、通常はHTMLタグと一緒に使用します。
この記事では、
といった基本的な内容から、応用的な内容に関しても解説していきます。
今回はそんな文字列をHTMLに出力する方法について、わかりやすく解説します!
HTMLタグを出力
HTMLに文字列を出力するには、echoを使います。echoは引数に指定した文字列を出力します。
<?php $name = "田中"; ?> <html> <head></head> <body> <p>こんにちは、<?php echo $name; ?>さん。</p> </body> </html>
こんにちは、田中さん。
変数$nameに代入された値が展開され、HTMLの一部として表示されます。変数にHTMLタグを代入して、表示することもできます。
<?php $name = "田中"; ?> <html> <head></head> <body> <p>こんにちは、 <?php $span = "<span style='color:red'> $name さん。</span>"; echo $span; ?> </p> </body> </html>
こんにちは、 田中 さん。 (「 田中 さん。」は赤字で表示されます。)
変数$spanには、HTMLタグが含まれています。echoで出力すると、タグの部分は通常のHTMLタグとして認識され、表示されます。
フォームの処理
HTMLフォームの送信先をPHPファイルにすることで、そのPHPファイルでフォームから送信されたデータを処理することができます。
HTMLでフォームを作成します。
<html> <head></head> <body> <form action="form.php" method="post"> 名前: <input type="text" name="name" /><br> <input type="submit" /> </form> </body> </html>
このフォームを記入し送信ボタンを押すと、form.phpにフォームのデータが送信されます。
フォームからのデータを出力する
上記のフォームから送信されたデータを出力してみます。
POSTで送信したデータは$_POST[‘要素名’]、GETで送信したデータは$_GET[‘要素名’]で取得することができます。
出力にはechoを使用します。
こんにちは、<?php echo $_POST['name']; ?>さん。
上記のフォームで「田中」を入力し送信ボタンを押すと、以下のように表示されます。
こんにちは、田中さん。
エスケープを指定
PHPでは文字列をダブルクォーテーション(”)、またはシングルクォーテーション(’)で囲んで扱います。
HTMLタグも属性値をダブルクォーテーション、またはシングルクォーテーションで囲います。
文字列を囲むダブルクォーテーションの中で、HTMLタグの属性値を同じダブルクォーテーションで囲ってしまうと、そこで文字列が終了してしまい、エラーとなってしまいます。
<?php $form = "<form action="form.php" method="post">"; // エラー echo $form; ?>
それを防ぐにはダブルクォーテーションをエスケープします。
エスケープの指定方法
エスケープを指定するには、バックスラッシュ()をエスケープする文字の前につけます。
<?php $form = "<form action="form.php" method="post">"; echo $form; ?>
バックスラッシュをつけると、文字列を囲むダブルクォーテーションではなく、ダブルクォーテーションそのものとして扱われます。
echoについてもっと詳しく知りたい方へ
echoのさまざまな使い方については、以下の記事にまとめていますので、ぜひ参考にしてくださいね!
まとめ
今回は、文字列をHTMLに出力する方法について解説しました。
HTMLへの出力はPHPの基本ですので、使い方をしっかり覚えましょう。HTMLへの出力について忘れてしまったら、この記事を思い出して下さい!