こんにちは、私はまったく新しい 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 ...