タイムスタンプが何故か桁数が多いので、削除しています。項目は気象庁と合わせます。
$BASE_URL = "https://earthquake.usgs.gov/earthquakes/feed/v1.0/summary/2.5_week.geojson"; $obj = json_decode(file_get_contents($BASE_URL)); echo "震央地名:" .$obj->features[65]->properties->place ."<br>"; $date = $obj->features[65]->properties->time; $date = substr($date, 0, -3); echo "地震の発生時間:" .date("Y/m/d H:i:s", $date) ."<br>"; echo "マグニチュード:" .$obj->features[65]->properties->mag ."<br>"; echo "緯度:" .$obj->features[65]->geometry->coordinates[1] ."<br>"; echo "経度:" .$obj->features[65]->geometry->coordinates[0] ."<br>"; echo "深さ:" .$obj->features[65]->geometry->coordinates[2] ."km<br>";
問題なさそうなので、最新200を配列に入れます。
$BASE_URL = "https://earthquake.usgs.gov/earthquakes/feed/v1.0/summary/2.5_week.geojson"; $obj = json_decode(file_get_contents($BASE_URL)); for($i=0; $i<200; $i++){ $place[] = $obj->features[$i]->properties->place; $date = $obj->features[$i]->properties->time; $date = substr($date, 0, -3); $time[] = date("Y/m/d H:i:s", $date); $mag[] = $obj->features[$i]->properties->mag; $lon[] =$obj->features[$i]->geometry->coordinates[1]; $lat[] = $obj->features[$i]->geometry->coordinates[0]; $depth = $obj->features[$i]->geometry->coordinates[2]; }
テーブルをつくります。
create table weather.quakes( id int unsigned auto_increment primary key, place varchar(255), time datetime unique, mag float, lat double(8,6), lng double(9,6), depth float );
入りました。
index.ctpをつくってあげます。
<?php $this->assign('title', '地震速報'); ?> <?= $this->element('menu'); ?> <h1>地震速報</h1> <span style="color:gray">※United States Geological Surveyを元に10分毎に最新のデータに更新しています。</span><br><br> <?php $i = 1; foreach ($quakes as $quake){ echo "震央地名:" .h($quake->place)."<br>"; echo "地震発生時間:" .($quake->time)."<br>"; echo "マグニチュード:".($quake->mag)."<br>"; echo "深さ:".($quake->depth)."km<br>"; echo "緯度:". ($quake->lat)."<br>"; echo "経度:".($quake->lng)."<br><br>"; } ?>