我正在制作一个测验脚本。我想要一个"老师"能够编辑问题。最初,我尝试使用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数组移入文件之前,如何将其转换为字符串?
提前致谢
答案 0 :(得分: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
}
?>
答案 1 :(得分:0)
fwrite($ handle,$ encoded array)或die('Internal Server Error');