【PHP入門】文字列をHTMLに出力する方法(echo)

こんにちは!フリーエンジニアのせきです。

PHPはウェブページにプログラムを組み込むためのプログラミング言語なので、通常はHTMLタグと一緒に使用します。

この記事では、

  • HTMLタグからPHPでデータを出力する方法が知りたい
  • HTMLフォームを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への出力について忘れてしまったら、この記事を思い出して下さい!

    この記事を書いた人

    フリーランスでWebシステム開発やゲーム開発をしています。
    読者の方にプログラミングの面白さをお伝えしたいです。

    目次