PHPをHTMLに埋め込む時の基本的なこと

PHPを触れてみようと思い、現在PHPを勉強中です!!

HTMLに埋め込むPHPを基本にまとめていきます。


PHPをHTMLに埋め込めには・・・

下記のコードで埋め込むことができます。

//index.php

<?php 埋め込みたいコード ?>


なので、例としては

 <p><?php echo 'こんにちは' ?></p>

上記のように使います。

echoというのは後ろのコードを出力してということです。

また、echoはよく使う記述になるので、省略も可能です。

 <p><?'こんにちは' ?></p>

このように、<?php echo 👈を <?= に置き換えることができます。


<?php ?>の中に変数を埋め込む

<?php ?>の中には変数を埋め込むこともできます。

変数は先頭に$(ダラーマーク)をつけることで宣言できます。

<?php $hello = 'こんにちは' ?>
<p><?= $hello ?></p>

これで画面に上に、こんにちはが表示されます。


そして、HTMLにコードの中に変数の宣言やif文の処理を書くと、
わかりにくいコードになるので、HTMLのコードより上の行にPHPの処理を書くこともできます。

<?php 

  $hello = 'こんにちは';

?>

<!DOCTYPE html>
<html lang="ja">
<head>
 <meta charset="utf-8">

上記のように、<?php と ?>を分けるとより見やすいですね!


HTMLにコードを埋め込むときに注意すること

PHPを使えば簡単にコードを埋め込むことができるので、JavaScriptのコードも埋め込むことができます。その時に、変なコードが紛れ込んでしまうと意図しない挙動に陥ることもあります。

それを防ぐ為にも、phpに用意されているhtmlspecialchars( )という関数を使います。

例として、

<?php $hello = '<script>alert(1);</script>'; ?>
       <p><?= $hello ?></p>

上記のようなコードを書くと、画面上にalertが出てしまいます。


これをhtmlspecialchars( )で変換します。

htmlspecialchars( )には、引数が3つあります。

第一引数は、$hello などの変換したいもの

第二引数は、ENT_QUOTESなどの変化パターン

第三引数は、UTF-8などの文字コード

これらを合わせると、

<?php $hello = '<script>alert(1);</script>'; ?>
<p><?= htmlspecialchars($hello, ENT_QUOTES, 'UTF-8') ?></p>

のようになり、画面上にスクリプトタグごと表示され、

逆に、alertは表示されないようになる。

※変換パターンにはENT_QUOTES以外にも種類があります。
下記のサイトを参考にさせていただきました。
https://techplay.jp/column/600


以上です。

初歩的なことだとは思いますが、土台が大事なので備忘録としてまとめました。

この記事が気に入ったらサポートをしてみませんか?