みなさんはHTMLとPHPの関係性を理解していますか?
この記事では、
- HTMLとPHPの関係性
- HTMLにPHPを埋め込んで文字列を出力する方法
- 特殊文字に置き換えるHTMLエスケープをhtmlspecialcharsで実行する方法
などの初歩的なことからHTMLを特殊文字に置き換える方法までを解説していきます。今一度HTMLからPHPを埋め込む基本的なことを知りたい方や、HTMLエスケープについて知りたい方はぜひ参考にしてください!
HTMLとPHPの関係とは
PHPはWebサービスを作成するのに特化したプログラミング言語で、HTMLとは深く関係しています。HTMLとPHPの違いとして、HTML(HyperText Markup Language)はマークアップ言語の1つで、Webページのフォントの設定や画像の表示などを装飾するのに不可欠な要素となります。
PHPはHypertext Preprocessorの略で、サーバーサイドプログラミング言語とも呼ばれています。その名のとおりサーバーでPHPプログラムを実行し、クライアントで結果を受け取ります。
PHPのスクリプトはHTML内のコードに挿入して、フォームから入力された値を演算したり、データベースに格納したり、アクセスした値をWebページに表示することなどが可能です。
そのため、HTML単体では静的なウェブページしか作れませんが、PHPを埋め込むことによって、動的なWebページを作成することが可能となります。PHPは以下のようにHTMLのコードに埋め込みます。
書き方:
<!DOCTYPE html> <html> <body> <?php ここにPHPの処理を記述 ?> </body> </html>
なお、PHPの基本的な解説については、以下の記事で詳しく解説しています!
PHPについて今一度基本的なことをおさらいしたい方も、ぜひ参考にしてください!
HTML内でPHPの埋め込み(文字列の出力)
ここでは、実際にHTMLのソースにPHPのソースを埋め込んでみましょう。以下は簡単な文字列を出力するサンプルです。
<!DOCTYPE html> <html> <head> <meta charset='utf-8'> <title>HTML内でのPHP処理</title> </head> <body> <h1><?php echo 'タイトルです'; ?></h1> <?php $text = "HTML内でのPHPスクリプト実行処理"; echo "<p> $text </p>"; ?> </body> </html>
このサンプルプログラムをブラウザで実行すると、以下のように表示されます。
このサンプルでは、まずHTMLの中の見出し1であるh1に、PHPのechoを使って文字列を出力しています。
<?php echo 'タイトルです'; ?>
またbodyで表示させたい文字列を変数$textに格納し、pタグの部分で文字列を出力させています。
<?php $text = "HTML内でのPHPスクリプト実行処理"; echo "<p> $text </p>"; ?>
ここで紹介した文字列を出力するechoについては、以下の記事でも詳しく解説しています。
文字列を出力するいくつかの方法
PHPで文字列を出力するには、先に紹介したecho以外にも方法があります。
echoの短縮構文
<!DOCTYPE html> <html> <head> <meta charset='utf-8'> <title>HTML内でのPHP処理</title> </head> <body> <h1><?php echo 'タイトルです'; ?></h1> <?='HTML内でのPHPスクリプト実行処理'; ?> </body> </html>
printの記述例
<?php $text = "HTMLでも文字列出力:"; $res = print $text; echo $res; ?>
printはechoと異なり戻り値がありますそのため、文字列が出力されたか判断することが可能です。printについては以下の記事でも詳しく解説しています!
htmlspecialcharsの使い方(HTMLエスケープ)
HTMLにおいて特殊な意味を持つ文字をHTMLの表示形式に変換するには、htmlspecialcharsを使用します。
htmlspecialchars関数を使用すると、「$」や「<」、「>」などの記号を「&」「<」「>」などに置き換えます。また、このように特殊文字に置き換えることをHTMLエスケープとも呼びます。
書き方:
string htmlspecialchars( string $文字列 [, int 変換形式 [, string 文字コード ]] )
引数:
- 第一引数には文字列を指定します。
- 第二引数には変換する定数を指定します。
- 第三引数には文字コードを指定します。
※デフォルトではUTF-8が指定されます。
第二引数に指定する定数:
- ENT_COMPAT:ダブルクオートを変換し、シングルクオートは変換しません。
- ENT_QUOTES:シングルクオートとダブルクオートを変換します。
- ENT_NOQUOTES:シングルクオートとダブルクオートは変換しません。
返り値:
変換後の文字列を返します。
以下にhtmlspecialcharsを使用した簡単なサンプルを紹介します。
//第二引数なし $str = "<a href='sample'>Sample</a>"; echo htmlspecialchars($str); //第二引数にENT_QUOTESを指定 $str = "<a href='sample'>Sample</a>"; echo htmlspecialchars($str, ENT_QUOTES);
実行結果:
<a href='sample'>Sample</a>gt; <a href='sample'>Sample</a>gt;
PHPを継続的に学習するコツ
PHPの学習をしていて、わからないところが多く何回も調べながらやるのは正直、嫌になってしまいますよね。そこで、どのようにすれば継続的に学習を続けて行けるのかそのコツをご紹介します。
目的を明確にする
まずは、なぜPHPを学んでいるのか明確にしましょう。例えば、PHPを学んで
- Webサイトが作りたい
- WordPressの編集がしたい
- エンジニアとして転職したい
- フリーランスを目指したい
など、目的は色々あると思います。
この目的を明確にすることがとても大事で、PHPを学ぶ学習意欲に繋がっていきます。目的がないまま学習をしていると、学習すること自体が目的になってしまい、ゴールのない果てしない道を進むことになります。その結果、挫折してしまう人が多いのが現状となっています。
そうならないためにも、PHPを学ぶ目的は言えるようにしましょう。もし言えない場合は、学ぶプログラミング言語自体間違っている可能性もあります。なので、しっかり目的から学んでいる言語があっているか確認しましょう。
学習プランを決める
目的が明確になったら、次に学習プランを立てましょう。この学習プランを立てずに学習している人が多いのですが、学習プランがないと自分が今どのくらい進んでいて、後どのくらい学習をすればいいのか見えないので、学習をすること自体がきつく長続きしません。
学習を継続的に続けるためには学習プランは必須とも言えます。いつまでに、どのレベルになっていて、最終的なゴールはいつ達成するのかはしっかり決めましょう。
先生を見つける
「何度もエラーになって、自分で調べては修正する」この繰り返しがPHPを学習していると起こります。調べてもよくわからないし、時間もかかってしまってプラン通りに学習が進まないというのは当然のように起こります。
このように思い、学習をすること自体に嫌気が指して挫折してしまう人も多いです。
そうならないためにも、「先生」を見つけることが大事になります。先生と言ってもそう簡単に探せそうにないですよね。最近ではSNSでもコミュニティーが増え、相談しやすい環境が増えてきています。こういったコミュニティーや勉強会を利用して先生を見つけるのも一つの手です。
自分に投資することも大事
学習サイトやアプリなど、無料で学習できる環境が整ってはいるものの自分に投資して学習をすることも大事です。本や有料学習サイトは、無料では学べない範囲の学習や機能が付いているので、効率的に学習をすることが可能です。
そして、投資のもう一つの方法がプログラミングスクールで学ぶことです。
独学と違い、プログラミングスクールでは上で紹介した学習を継続するためのサポートが徹底されているので、最も効率の良い学び方と言えるでしょう。先生も自分で探す必要がないので、エラーなどで躓いて時間がかかる心配もありません。
ですが、当然いきなりスクールに入るのは抵抗がありますよね。
その場合は、弊社で行っている無料カウンセリングへ参加してみてください。この無料カウンセリングでは、なぜPHPを学ぶのかその目的をヒアリングして、本当にPHPを学ぶべきなのか、その学習プランはどのように立てるのかなどの提案をしています。
目的をヒアリングすることで、あなたに最適な言語や学習プランが分かるので、最速でエンジニアを目指せるイメージがわきます。
手軽にしかもオンラインでも受けられるので、ぜひ一度目的を明確にしてみましょう。
まとめ
ここでは、HTMLとPHPについて、
- HTMLとPHPの関係性
- HTMLにPHPを埋め込んで文字列を出力する方法
- 特殊文字に置き換えるHTMLエスケープをhtmlspecialcharsで実行する方法
などを解説しました。PHPとHTMLは切っても切れない関係性ですので、特性をよく理解しておきましょう。