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
以上です。
初歩的なことだとは思いますが、土台が大事なので備忘録としてまとめました。
この記事が気に入ったらサポートをしてみませんか?