1

クイズスクリプトを作成しています。「先生」が質問を編集できるようにしてほしい。もともとmySQLを使おうとしたのですが、ちょっと難しかったので、JSONファイルに切り替えることにしました。

PHP でいくつかの基本的なチェックを行った後、次のコード ブロックを作成しました。

$json = array();
for ($x=1; $x < $count + 1; $x++) { 
    $q_and_a = array(
        "Question" => $_POST["q".$x],
        "Answer" => $_POST["a".$x]
        );
    array_push($json, $q_and_a);    
}
$encoded_array = json_encode($json);
// Delete JSON file, create new one and push encoded array into file
$json_file = 'questions.json';
unlink($json_file);
$handle = fopen($json_file, 'w') or die('Cannot open file:  '.$json_file);
fwrite($handle, $json_string) or die('Internal Sever Error');

$json内部サーバー エラーが発生した後、変数が配列であることが原因であることに気付きました。それを文字列に変換してから、ファイルに挿入する必要があります。私は最初に使用serialize()しましたが、ファイルに奇妙なものが挿入されました。json 配列をファイルに移動する前に文字列に変換するにはどうすればよいですか?

前もって感謝します

4

2 に答える 2

1

このコードを試してください。JSONは使用しませんが、データをファイルに保存し、それを使用して分割しますtab

<?php 
$count=10;//whatever you defined it to
$qa = "";
for ($x=1; $x < $count + 1; $x++) { 
    $qa .= $_POST["q".$x]."\t".$_POST["a".$x]."\n";   
}
$json_file = 'file.txt';
unlink($json_file);
file_put_contents($qa);
?>

<?php
//to retrieve q&a
$qas = file('file.txt',FILE_IGNORE_NEW_LINES|FILE_SKIP_EMPTY_LINES);
$qas = explode("\t",$qas);
foreach($qas as $question => $answer)
{
    //your code 

}
?>
于 2013-07-04T16:21:27.197 に答える
0

fwrite($handle, $encoded_array) or die('Internal Sever Error');

于 2013-07-04T16:22:25.480 に答える