less than 1 minute read

学んだこと

JSON ファイルを読み込む

  • file_get_contents(ファイル名)でファイルのデータを取得し、json_decodeでファイルを JSON 形式にデコードすることで JSON ファイルを扱うことができる。
  • 変数名->JSON の要素名とすると、要素内のすべてのデータを取得できる。
    • 要素内要素にアクセスする場合は、変数名->要素名->要素などでアクセスするだけでデータを取得することができる。
<!DOCTYPE html>
<html lang="ja">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Sample01</title>
</head>
<body>
    <?php
    $file = file_get_contents('feed.json');
    $json = json_decode($file);
    foreach($json->items as $item):
    ?>
    ・<a href="<?php echo $item->url; ?>"><?php echo $item->title; ?></a><br>
    <?php endforeach; ?>

</body>
</html>

JSON ファイルを作成する

  • JSON 形式のファイルを作成するために、配列を用意する。
  • 用意した配列をjson_encodeで JSON 形式にエンコードする。
    • 第二引数にJSON_UNESCAPED_UNICODEをつけると、unicode で JSON をエンコードする。
  • JSON 形式にエンコードしたデータをfile_put_contentsでファイル作成する。
<!DOCTYPE html>
<html lang="ja">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Sample01</title>
</head>
<body>
    <?php
    // JSONにするために、配列でデータを作成する。
    $json_sample = [
        "title"=>"JSONサンプル",
        "items"=>[
            "りんご",
            "みかん"
        ]
    ];

    $json = json_encode($json_sample, JSON_UNESCAPED_UNICODE);
    echo $json;
    file_put_contents('json_sample.json', $json);
    ?>

</body>
</html>

フォームから入力を受け取る

  • フォームの表示を html で、入力時の処理を php で行うようにした。

index.html

  • form actionsubmit.phpを指定している。
    • form が送信された場合にsubmit.phpを実行するようにした。
<!DOCTYPE html>
<html lang="ja">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Document</title>
  </head>
  <body>
    <form action="submit.php" method="get">
      <label for="my_name">お名前:</label>
      <input type="text" id="my_name" name="my_name" />
      <input type="submit" value="送信する" />
    </form>
  </body>
</html>

submit.php

  • $_REQUEST['my_name']で form に入力された文字列を取得することができる。
    • $_REQUEST['my_name']で取得する場合、XSS(クロスサイトスクリプティング)対策を行う必要がある。
      • XSS とは、攻撃者が悪意のあるスクリプトをウェブページに挿入し、他のユーザーがそのページにアクセスした際にスクリプトが実行される攻撃手法
      • 対策するためにはhtmlspecialchars($_REQUEST['my_name'])のように、htmlspecialchars 関数 を挟むことで対策することが可能。
  • 送られた form に空かそうでないか判別する。
    • empty を使うことで判別可能。
<!DOCTYPE html>
<html lang="ja">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>sample20</title>
</head>
<body>
    <?php if(!empty($_REQUEST['my_name'])):?>
        <p>お名前: <?php echo htmlspecialchars($_REQUEST['my_name']);?></p>
    <?php endif; ?>
</body>
</html>

Tags:

Updated: