PHP

jsonデータをphpで利用する方法

black and yellow printed paper

次のように利用しましょう。
スプレッドシートから生成したjsonデータをPHPで利用しています。

https://logzitsu.tlog.work/%E3%82%B9%E3%83%97%E3%83%AC%E3%83%83%E3%83%89%E3%82%B7%E3%83%BC%E3%83%88%E3%81%A7api%E3%81%8C%E4%BD%9C%E3%82%8C%E3%82%8B%E3%82%89%E3%81%97%E3%81%84%E3%81%AE%E3%81%A7%E8%A9%A6%E3%81%97%E3%81%A6/
<!DOCTYPE html>
<html lang="ja">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
</head>
<body>

<?php 
$url = "https://script.google.com/macros/s/AKfycbxR0D4OJhcTKoB_UX5O9WTkYMlfsj_I1UYxx003/exec";
$json = file_get_contents($url);

//データを変換
$json = mb_convert_encoding($json, 'UTF8', 'ASCII,JIS,UTF-8,EUC-JP,SJIS-WIN');

//配列に入れる
$arr = json_decode($json,true);

//配列を全て吐き出す
var_dump($arr);

?>

<h2>
<?php //0番目のタイトルを出力
echo $arr[0]['title'];
?>
</h2>

<p>
<?php //0番目のタイトルを出力
echo $arr[0]['contents'];
?>
</p>

<h2>ループで出力</h2>

<ul>
<?php
 foreach ($arr as  $text) {
   echo "<li>".$text["title"].$text["contents"] ."</li>";
 }
?>
</ul>
    
</body>
</html>

https://kouga.tlog.work/test.php

php.iniの設定で「file_get_contents」が使えない設定だと動きません。
無料サーバーでは動きませんでした。
さくらサーバーではすんなり動きました。XFREEは🙅‍♂️でした。

これで、「スプレッドシートを更新したらPHPサイトに反映できる」
というサイトが実現できましたね。

googleフォームを組み合わせれば掲示板ができるのでは?

スプレッドシートはgoogleフォームで内容を追加する仕組みがもともと備わっていますね。
今までやってきたことを組み合わせれば、掲示板やチャットが作れるのではないでしょうか?

上記ではスプレッドシートの編集は自分しかできないため、適当に出力していますが複数人が投稿できる場合はセキュリティにももう少し気を使う必要がありそうです。

↓やってみました

https://logzitsu.tlog.work/google%E3%83%95%E3%82%A9%E3%83%BC%E3%83%A0%E3%82%92%E5%88%A9%E7%94%A8%E3%81%97%E3%81%A6%E6%8E%B2%E7%A4%BA%E6%9D%BF%E3%82%92%E3%81%A4%E3%81%8F%E3%82%8B/