1

こんにちは、私はまったく新しい php で、javascript から json-object を php 経由で .csv ファイルとして保存したいと考えています。

Logger.json というファイルで定義された JSON-Object があります。

{
    "Name": "Dummy",
    "Uhrzeit": "1234",
    "Speed": "100",
    "Level": "11",
    "Szenen": {

    }
}

$.getJson 経由でファイルを読み取った後、いくつかのプロパティをオブジェクトに追加します。Logger.php はコンテンツを受け取るようになりました (json_decode($_POST['data'], true);最後にブール値の true を逃したため、最初は常に空でした) が、格納された .csv には ("Array, Array") が含まれているだけです。

jsonText(data =なし)またはオブジェクトobj自体を送信するだけで、他のコンテンツタイプも試しました。うまくいかない理由はありますか?ありがとう!

$.getJSON('xml/Logger.json', function(obj) {

        //add new scene:
        obj.Szenen["144"] = {};
        obj.Szenen["144"]["happy"] = {};
        obj.Szenen["144"]["happy"].type = "right";
        obj.Szenen["144"]["happy"].collected = "0";
        obj.Szenen["144"]["sad"] = {};
        obj.Szenen["144"]["sad"].type = "false";
        obj.Szenen["144"]["sad"].collected = "0";
        obj.Szenen["144"]["angry"] = {};
        obj.Szenen["144"]["angry"].type = "false";
        obj.Szenen["144"]["angry"].collected = "0";
        obj.Szenen["200"] = {};
        obj.Szenen["200"]["happy"] = {};
        obj.Szenen["200"]["happy"].type = "right";

        console.log(obj);

        var jsonText = JSON.stringify(obj);

        var request= new XMLHttpRequest();
        request.open("POST", "http://localhost/logger.php")
        request.setRequestHeader("Content-type", "application/x-www-form-urlencoded", true)


var data = "data="+jsonText;
request.send(data);

私の logger.php は次のようになります。

<?php

 $values = json_decode($_POST['data'], true);
 store($values);

function store($data) {
    $file = 'logs/UserLogging';

    $filename = $file."_".date("d-m-Y_H-i",time()).".csv";

    $fp = fopen($filename, 'w');
    foreach($data as $line){
        //$val = explode(",",$line);
        fputcsv($fp, $line);
    }    
    fclose($fp);    
}

?>

編集: .csv は次のようになります (ただし、"Name" や "Uhrzeit" などのキーも出力に表示される場合は完璧です):

Dummy,1234,100,11;
144,happy,right,0,sad,false,0,angry,false,0;
200,happy,right ...
4

1 に答える 1