如何使用PHP将文本文件转换为JSON?
我的文本文件中有如下数据:如何使用PHP将文本文件转换为JSON?,php,json,Php,Json,我的文本文件中有如下数据: data1 data1 data1 data1 data1 data1 data1 data1 data2 data2 data2 data2 data2 data2 data2 data2 data3 data3 data3 data3 data3 data3 data3 data3 { "data": [ [ "data1", "data1", "data1", "data1",
data1
data1
data1
data1
data1
data1
data1
data1
data2
data2
data2
data2
data2
data2
data2
data2
data3
data3
data3
data3
data3
data3
data3
data3
{
"data": [
[
"data1",
"data1",
"data1",
"data1",
"data1",
"data1",
"data1",
"data1"
],
[
"data2",
"data2",
"data2",
"data2",
"data2",
"data2",
"data2",
"data2"
],
[
"data3",
"data3",
"data3",
"data3",
"data3",
"data3",
"data3",
"data3"
]
]
该文件可以包含任意数量的行,但数据始终位于8行部分中。
我想要的输出是有效的JSON,如下所示:
data1
data1
data1
data1
data1
data1
data1
data1
data2
data2
data2
data2
data2
data2
data2
data2
data3
data3
data3
data3
data3
data3
data3
data3
{
"data": [
[
"data1",
"data1",
"data1",
"data1",
"data1",
"data1",
"data1",
"data1"
],
[
"data2",
"data2",
"data2",
"data2",
"data2",
"data2",
"data2",
"data2"
],
[
"data3",
"data3",
"data3",
"data3",
"data3",
"data3",
"data3",
"data3"
]
]
}
我曾尝试设计一个php脚本来实现这一点,但我对php毫无希望,我几乎是他们的,但无法获得正确的格式
$tdcount = 1; $numtd = 8; // number of cells per row
$str = "{
\"data\": [
";
$f = fopen("data.txt", "r");
if ( $f === FALSE ) {
exit;
}
while (!feof($f)) {
$arrM = explode(",",fgets($f));
$row = current ( $arrM );
if ($tdcount == 1)
$str .= "["; $str .= "\"$row\"";
if ($tdcount == $numtd) {
$str .= "]";
$tdcount = 1;
} else {
$tdcount++;
}
}
$str .= "] ] }";
echo $str;
exit;
?>
因此,我想知道他们是否有一种更简单的方法来实现这一点,以及任何能够满足我要求的示例解决方案。主要有两件事-第一件事是不要尝试构建自己的JSON,这很快就会导致问题。第二,尝试使用一些内置函数来简化编码(代码中的注释)
你的“数据”到底是什么样子的?我这样问是因为这里你用逗号分解,但是你显示的“数据”看起来只有换行符分开,因为我有这样一个文本文件中的数据。数据实际上是这样的,出于某种原因,逗号适用于一个新的线性。实际上,逗号与新行无关。是的,我想你是对的,好的代码缩进将帮助我们阅读代码,更重要的是,它将帮助你为自己的利益调试代码。您可能会被要求在几周/几个月内修改此代码,最终您将感谢我。