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) 或 die('Internal Sever Error');

于 2013-07-04T16:22:25.480 回答