PHP - Webページの作成

公開日:2020-12-22 更新日:2020-12-22
[PHP]

1. 概要

PHP を Nginx や Apache HTTP Server などの Web サーバと連携することで、
Webページを PHP で動的に出力することができます。

今回は「PHP - 動作環境構築(Windows)」でインストールした Nginx の環境を使います。

2. PHP による HTML の出力

Nginx や Apache のドキュメントルートに、次の PHP をファイルを UTF-8 で作成します。
(ドキュメントルートは、配置したファイルが公開されるフォルダのこと)

C:/nginx-1.18.0/html/test.php
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>TEST</title>
</head>
<body>
<?php
    $v1 = 1;
    $v2 = 2;
    $v3 = $v1 + $v2;
    print($v3);
?>
<br />
省略版:<?= $v1 ?> + <?= $v2 ?> = <?= $v3 ?><br />
</body>
</html>

Nginx と php-cgi.exe を起動して、http://localhost/test.php にブラウザでアクセスすると、
HTML 内の PHP が実行されて、3 と表示されます。

拡張子を php にしたファイル内では、<?php と ?> で囲った部分を PHP として処理します。
それ以外の部分は、文字列としてそのまま出力されます。
また、変数の値や数式の結果を表示する場合は、<?= 式 ?> とすることができます。

3. if による分岐

if で分岐することもできます。
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>TEST</title>
</head>
<body>
<?php
  $value = 1;
  
  if ($value == 1) {
    ?>
      value は 1 です。
    <?php
  } else {
    ?>
      value は 1 ではありません。
    <?php
  }
?>
</body>
</html>

4. for によるループ

for でループして、HTMLのタグを動的に増やすこともできます。
ブラウザでソースの表示を行って、liタグが3行になっていることを確認してください。
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>TEST</title>
</head>
<body>

<ul>
<?php
  $list = ['りんご', 'みかん', 'すいか'];
  for ($i = 0; $i < count($list); $i++) {
    ?>
      <li><?= $i + 1 ?>:<?= $list[$i] ?></li>
    <?php
  }
?>
</ul>

</body>
</html>

5. 画面遷移

次の3つのファイルを作成して、input.html にアクセスしてください。
「足す」ボタンをクリックすると、post.php に入力値が送信されて、加算の結果が表示されます。
また、一番下の「足す」リンクをクリックすると、get.php へ移動します。
この時に、リンクに埋め込まれていた値の加算をして結果を表示します。

input.html(入力画面)
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>入力画面</title>
</head>
<body>
<form action="post.php" method="POST">
<input type="text" name="value1" value="10" /><br />
<input type="text" name="value2" value="20" /><br />
<input type="submit" value="足す" />
</form>
<br />
<a href="get.php?value1=10&value2=20">足す</a>
</body>
</html>

post.php
<?php
	print('答え:');
	print($_POST['value1'] + $_POST['value2']);
	
	print('<hr />');
	print('POST<br />');
	var_dump($_POST);

get.php
<?php
	print('答え:');
	print($_GET['value1'] + $_GET['value2']);
	
	print('<hr />');
	print('GET<br />');
	var_dump($_GET);

submitのボタンを押すと、form タグの action で指定されたURLへ移動します。
この時に、formタグの開始タグと終了タグの間にある input タグの値も送信されます。
また、method を GET にすると、入力値が、URLの後ろに付く形で送信されます。
リンクをクリックした時と同じです。