質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
JSON

JSON(JavaScript Object Notation)は軽量なデータ記述言語の1つである。構文はJavaScriptをベースとしていますが、JavaScriptに限定されたものではなく、様々なソフトウェアやプログラミング言語間におけるデータの受け渡しが行えるように設計されています。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Q&A

解決済

1回答

5136閲覧

phpでjsonデータを表示させる

arp

総合スコア11

JSON

JSON(JavaScript Object Notation)は軽量なデータ記述言語の1つである。構文はJavaScriptをベースとしていますが、JavaScriptに限定されたものではなく、様々なソフトウェアやプログラミング言語間におけるデータの受け渡しが行えるように設計されています。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

0グッド

1クリップ

投稿2018/07/07 17:00

すでに取得したjson形式のデータをphpを利用して表示させたい

ここに質問の内容を詳しく書いてください。
phpを使って取得したjson形式のデータを表示させようとしています。
しかし、jsonにまだ不慣れで値へのアクセスの仕方がわかりません。
現在扱っているjsonの形と試したコードを貼り付けます。

試したコード

php

1<!DOCTYPE html> 2<html lang="ja" dir="ltr"> 3<head> 4 <meta charset="utf-8"> 5 <title>test</title> 6</head> 7<body> 8<?php 9/** 10 * Created by PhpStorm. 11 * User: 12 * Date: 13 * Time: 14 */ 15$url = "./test.json"; 16$json = file_get_contents($url); 17$json = mb_convert_encoding($json, 'UTF8', 'ASCII,JIS,UTF-8,EUC-JP,SJIS-WIN'); 18$arr = json_decode($json, true); 19 20print("<table border=1>"); 21 22foreach ($arr as $elm) { 23 print("<tr>"); 24 print("<td>" . $elm['trends']['name'] . "</td>"); 25 print("<td>" . $elm['trends']['url'] . "</td>"); 26 print("</tr>"); 27} 28print("</table>"); 29?> 30</body> 31</html>

###扱うデータ

[ {"trends": [ {"name":"\u5EA6","url":"http://search?","promoted_content":null,"query":"%E5%BA%A6","volume":10583 }, {"name":"aaa","url":"http://bbb","promoted_content":null,"query":"ccc","volume":12345 }, ... {"name":"AAA","url":"http://BBB","promoted_content":null,"query":"CCC","volume":67890 } ], "as_of":"2018-07-06T08:17:55Z","created_at":"2018-07-06T08:09:27Z","locations": [ {"name":"Kitakyushu","woeid":1110809 } ] } ]

試したこと

このまま実行して
Notice: Undefined index: name in I:\php_test\test.php on line 24

Notice: Undefined index: url in I:\php_test\test.php on line 25
と言われました。

補足情報

jsonデータは適当に短くしています。“name”や“url”をforeachで表示させる方法を知りたいです。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

php

1<?php 2ini_set('display_errors', true); 3error_reporting(E_ALL); 4 5function h($string) 6{ 7 return htmlspecialchars($string, ENT_QUOTES, 'UTF-8'); 8} 9 10$url = "./test.json"; 11$json = file_get_contents($url); 12 13// 不要JSONの仕様上UTF-8であることは明らか 14//$json = mb_convert_encoding($json, 'UTF8', 'ASCII,JIS,UTF-8,EUC-JP,SJIS-WIN'); 15$arr = json_decode($json, true); 16 17//var_dump($arr); 18?> 19<!DOCTYPE html> 20<html lang="ja" dir="ltr"> 21 <head> 22 <meta charset="utf-8"> 23 <title>test</title> 24 </head> 25 <body> 26 <table> 27 <?php foreach ($arr[0]['trends'] as $item) : ?> 28 <tr> 29 <td><?= h($item['name']) ?></td> 30 <td><?= h($item['url']) ?></td> 31 </tr> 32 <?php endforeach; ?> 33 </table> 34 </body> 35</html>

var_dump() 指南 (初学者・初心者用)

投稿2018/07/07 17:13

退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

arp

2018/07/08 07:40

大方解決しました!ありがとうございます。 まだ第一段階なのでまた質問を投稿することもあるかと思いますがその時はまた質問を見に来てくれるとありがたいです。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問