PHPファイルをCSVで出力してみたい!
解決したいこと
ここに解決したい内容を記載してください。
PHPを学んで1週間足らずの初心者です。
APIから取得したデータをcsvファイルで出力したいのですが。
解決方法を教えて下さい。
発生している問題・エラー
こちらのサイトを参考に、htmlファイルとphpファイル、念のため空のCSVファイルを作成し、
PHPを実行してみましたが、
syntax error とでます。
該当するソースコード
HTML
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<meta description="APIデモ">
<meta name="viewport" content="width=device-width">
<style type="text/css">
.genre {
margin-bottom:20px;
padding-bottom: 20px;
border-bottom: 1px solid #ccc;
}
.deco {
border-collapse: collapse;
}
.deco tds{
border:1px solid #ccc;
font-size : 12px;
}
.deco tr:nth-child(even){
background-color: #ffffff;
}
</style>
<title>外部APIを利用してCSVファイルを作成するデモ</title>
</head>
<body>
<h1>チェックボックスから欲しいデータ</h1>
<form action="api_test.php" method="post">
<input type="radio" name="country" value="IN">
"インド"
<input type="radio" name="country" value="SG">
"シンガポール"
<input type="radio" name="country" value="TH">
"タイ"
<p>
<input type="submit" value="ツアーデータを取得">
</p>
</form>
<div class="deco">
<h2>マップエリアを標示させるAPIデモ</h2>
<p>エリアのジャンル一覧を表示する</p>
<p><a href="download.php">CSVファイルをダウンロードする</a>
</p>
<table class="deco">
<tbody>
<tr>
<td width="25%">タイトル</td>
<td width-"10%">エリア</td>
<td width="10%">国</td>
<td width="10%">街</td>
<td width="40%">写真</td>
</tr></tbody>
<//table>
</div>
</body>
</html>
PHP
<?php
$base_url='http://webservice.recruit.co.jp/ab-road/tour/v1/?key=2def7905c4675096&';
$count = '&count=20';
$format = '&format=json';
$csv_file="sample/csv";
// POSTなら処理を実行する
if ($_SERVER['REQUEST_METHOD']=='POST') {
// 国コードを取得
$getarea = $_POST["country"];
// 空かどうかをチェック。データが存在する場合は処理
if(!empty($getarea)){
$country ="country=".$getarea ;
// APIにリクエストURLを作成する
$url = $base_url.$country.$country.$count.$format;
// JSONデータを加工する
$json = json_decode(file_get_contents($urls));
}
}
// CSVファイルを読み込み・書き込みでオープンする
$fp = fopen($CSV_file,"a");
flock($fp,LOCK_EX);
// CSVファイルの中身を空にする
// 既存の内容に追記していく場合は不要
ftruncate($fp,0);
fseek($fp,0);
// 取得したデータをCSVに書き込む
foreach($json ->results ->tour as $genre) {
$title=atr-replace(",","",$genre->title);
$csv.=strftime("%Y/%m/%d %H:%M:%S").","; // 取得時間
$csv.=$title.",";
$csv.=$genre->dest->area->name.",";
$csv.=$thumbnail.",";
$csv.=$genre->dest->country->name.",";
$csv.=$renre->urls->pc.",";
$csv.=$gebre->dest->name.",";
$csv.=$genre->dest->lat.","; //Google mapの緯度
$csv.=$genre->dest->lng.",";
$csv.="\n";
}
// CSVデータ$csvの内容をデータに書き込む
fwrite($fp,$csv);
// CSVファイルを閉じる
flock($fp,LOCK_UN);
fclose($fp);
?>
自分で試したこと
PHPの47行目:$fp,LOCK?UNとなっていたので、
$fp,LOCK_UNに訂正。
OSはWINDOWS10です。
ターミナルはXAMPPを使用しています。
そもそもファイルの置き方など詳しくありませんので、
そちらもご教授いただければ幸いです。
0