[英]How can i convert a text file to JSON using PHP?
我在這樣的文本文件中有數據:
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:
{
"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;
?>
所以我想知道他們是否有更簡單的方法來做到這一點,以及任何滿足我要求的示例解決方案都會很棒。
2 件主要事情 - 首先是不要嘗試構建自己的 JSON,這會很快導致問題。 其次是嘗試使用一些內置函數來使編碼更容易(代碼中的注釋)...
$numtd = 8;
// read the file into an array
$data = file("data.txt", FILE_IGNORE_NEW_LINES );
// use trim to remove any spaces
$data = array_map("trim", $data);
// array_chunk to split it into parts, output with json_encode
echo json_encode( ["data" => array_chunk($data, $numtd)], JSON_PRETTY_PRINT );
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.