Are you sure you want to delete the question?

Leaving a resolved question undeleted may help others!

PHPファイルをCSVで出力してみたい!

解決したいこと

ここに解決したい内容を記載してください。

PHPを学んで1週間足らずの初心者です。
APIから取得したデータをcsvファイルで出力したいのですが。
解決方法を教えて下さい。

発生している問題・エラー

こちらのサイトを参考に、htmlファイルとphpファイル、念のため空のCSVファイルを作成し、
PHPを実行してみましたが、
syntax error とでます。

スクリーンショット (3).png

該当するソースコード

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

No Answers yet.

Your answer might help someone💌