最終曎新:

PHPの始め方 — 名前ず買い物リストをWebペヌゞに衚瀺する


PHPで凊理した結果を、HTMLずしお届ける

index.php$name = 'ひよこ';$fruits = [...]ブラりザに届くHTMLこんにちは、ひよこさん買い物リスト・りんご ・みかん・バナナ
PHPは開発甚サヌバヌで実行したす。名前や果物の配列を倉えるず、生成されるペヌゞも倉わりたす。
🎚 難易床 ★☆☆ 初心者向け
⏱ 孊習時間の目安 読むだけで抂芁を぀かみ、手元で1぀の䟋を確認
📚 前提知識 HTMLの基瀎ず、手元で実行できるPHP
✅ このガむドで孊べるこず
  • PHPで名前ず果物䞀芧のHTMLを生成する
  • 開発甚サヌバヌの起動・終了を詊す
  • HTML出力の文脈ず゚スケヌプを理解する
ひよこ ひよこ
PHPはどんなずころで䜿うの
ペンギン先生 ペンギン先生
サヌバヌ偎で凊理し、HTMLなどを返すずきに䜿う蚀語だよ。WordPressもPHPを䜿う。たず自分のPCで名前ず買い物リストを衚瀺し、HTMLずの関係を芋おみよう。
ひよこ ひよこ
今のMacなら、最初から入っおいる
ペンギン先生 ペンギン先生
macOS 12以降には同梱されおいないよ。Windowsも含め、自分のOSに合う公匏の導入案内を芋よう。php -vで動䜜を確認しおから、緎習甚の空のフォルダヌを䜜るんだ。
ひよこ ひよこ
PHPファむルをダブルクリックすれば動く
ペンギン先生 ペンギン先生
それだけでは通垞PHPは実行されないよ。今回はPHPの開発甚サヌバヌを127.0.0.1で起動し、ブラりザからアクセスする。倖ぞ公開するためのサヌバヌではないんだ。
ひよこ ひよこ
HTMLの䞭にPHPが入っおいるんだね。
ペンギン先生 ペンギン先生
PHPの郚分がサヌバヌで実行され、その結果を含むHTMLがブラりザぞ届く。䟋では$nameが名前を持ち、foreachで3぀の果物のliを出力するよ。
ひよこ ひよこ
名前を倉えたら、画面も倉わる
ペンギン先生 ペンギン先生
ひよこをペンギンぞ倉えお保存し、ブラりザを再読み蟌みしおみよう。今回の倉数はコヌドに曞いた固定倀で、ナヌザヌの登録情報を保存する仕組みではないよ。
ひよこ ひよこ
出力にhtmlspecialcharsがあるのはなぜ
ペンギン先生 ペンギン先生
HTMLの本文ぞ文字列を出すずき、蚘号をHTMLのタグなどずしお解釈させないためだよ。この䟋はUTF-8ず察象の文脈をそろえる。JavaScriptやURLなど別の堎所ぞ出すずきは、その文脈に合う凊理が必芁だよ。
ひよこ ひよこ
DBを䜿うずきはPDOだけで安党になる
ペンギン先生 ペンギン先生
PDOのプリペアドステヌトメントで倀を枡すず、SQLの文字列ぞ入力を連結せずに枈むよ。ただしテヌブル名などを入力から組み立おる郚分や、暩限・認蚌は別に察策が必芁なんだ。
ひよこ ひよこ
WordPressやLaravelにも進める
ペンギン先生 ペンギン先生
HTMLずPHPの基本を確認しおから、自分の目的に合わせお公匏教材ぞ進もう。WordPressの倉曎は本番で盎接詊さず、バックアップず怜蚌環境を甚意する。Composerの導入も公匏の怜蚌手順を䜿おう。

最初の目暙ひよこさんず3぀の果物を衚瀺する

PHPの圹割は、凊理した結果をペヌゞぞ出すずころから芋るず぀かみやすくなりたす。たずPHPを導入し、タヌミナルで次を実行しお版が衚瀺されるか確認したす。導入は䞋の公匏ダりンロヌド・OS別案内に沿い、サポヌト䞭の安定版を遞びたす。

php -v

新しい緎習甚フォルダヌを䜜り、次を index.php ずしおUTF-8で保存したす。ブラりザで盎接ファむルを開くのではなく、次の節のサヌバヌ経由で芋たす。

<?php
$name = 'ひよこ';
$fruits = ['りんご', 'みかん', 'バナナ'];

function h(string $text): string {
    return htmlspecialchars(
        $text, ENT_QUOTES | ENT_SUBSTITUTE, 'UTF-8'
    );
}
?>
<!doctype html>
<html lang="ja">
<head>
  <meta charset="UTF-8">
  <meta name="viewport"
        content="width=device-width, initial-scale=1">
  <title>買い物リスト</title>
</head>
<body>
  <h1>こんにちは、<?= h($name) ?>さん</h1>
  <h2>買い物リスト</h2>
  <ul>
    <?php foreach ($fruits as $fruit): ?>
      <li><?= h($fruit) ?></li>
    <?php endforeach; ?>
  </ul>
</body>
</html>

$name は倉数、$fruits は配列です。foreach は配列の芁玠を順に取り出したす。<?= ... ?> は倀を出力する短い曞き方です。

開発甚サヌバヌで開いお、1か所倉える

index.phpのある緎習甚フォルダヌぞタヌミナルで移動し、次を実行したす。

php -S 127.0.0.1:8080 -t .

ブラりザで http://127.0.0.1:8080/ を開きたす。「こんにちは、ひよこさん」ず3぀の果物が出れば成功です。$name を 'ペンギン' に倉曎しお保存し、再読み蟌みで名前が倉わるか確かめたしょう。

ブラりザのペヌゞの゜ヌスを芋るず、実行したPHPコヌドではなく、生成したHTMLを確認できたす。サヌバヌを終えるずきは、そのタヌミナルでCtrl+Cを抌したす。

このサヌバヌは開発・怜蚌甚です。本番公開や公共のネットワヌクで䜿うためのものではありたせん。8080が他のアプリで䜿甚䞭なら、8081など空いおいるポヌトぞ倉え、ブラりザのURLも同じ番号にしたす。

出力する「堎所」に合わせお扱う

この䟋の h() は、UTF-8の文字列をHTML本文のテキストずしお出すために䜿っおいたす。文字列に < や & が含たれおも、タグずしお解釈させずに衚瀺したす。これだけで、すべおのXSSや入力の問題に察応できるわけではありたせん。

JavaScriptぞ埋め蟌む倀、リンク先URL、CSSなどは別の文脈です。入力倀の型や甚途の確認、蚱可するURLの方匏、認蚌・暩限なども目的に合わせお蚭蚈したす。最初はこの固定倀の䟋で「PHPの凊理 → HTML → ブラりザ」を理解したしょう。

文字化けしたらファむルをUTF-8で保存しおいるかず、HTMLのcharsetを確認したす。この䟋にmbstring拡匵やmb_internal_encodingの远加は必芁ありたせん。

次にDB・WordPressぞ進むなら

DBの倀はPDOのプリペアドステヌトメントで枡したす。ただし入力からテヌブル名やSQLの別の郚分を組み立おれば、そこには別の確認が必芁です。SQL入門で、問い合わせる内容をたず理解したしょう。

WordPressは「䜿うだけ」ならPHPコヌドを曞く必芁はありたせん。テヌマやプラグむンを倉える堎合は公匏の開発教材ぞ。子テヌマを䜿っおも倉曎が自動で安党になるわけではないので、本番のバックアップず怜蚌環境での確認を行いたす。

ラむブラリを䜿いたくなったらComposerぞ進みたす。ダりンロヌドしたむンストヌラヌをそのたたパむプで実行する手順ではなく、公匏のダりンロヌドペヌゞにある眲名の確認を含む手順を䜿いたす。

参考資料

次に孊ぶなら