我在PHP中的新手,我试图让与.csv文件通信的待办事项列表,。到目前为止,我已经成功地写写入用户输入到CSV文件的功能,但我卡上书写,将解析(我甚至不知道这是正确的术语)的每一行的功能.csv文件后,到一多维数组,这样我就可以显示列表的每一行对我的PHTML文件的便利。
这是我到目前为止有:
`<?php
//
// ─── DATA ────────────────────────────────────────────────────────────────────
//
$user_entry = array(
'title' => '',
'description' => '',
'date' => '',
'priority' => ''
);
// puts the data the users entered into an array
$user_entry['title'] = $_POST['title'];
$user_entry['description'] = $_POST['description'];
$user_entry['date'] = $_POST['date'];
$user_entry['priority'] = $_POST['priority'];
//
// ─── FUNCTIONS ──────────────────────────────────────────────────────────────────
//
function writeInList() {
//parses the $user_entry array into the .csv file
global $user_entry;
$file = fopen("todo.csv","a");
fputcsv($file, $user_entry, ",");
fclose($file);
}
function displayList() {
//That's where I'm stuck.
$file = fopen("todo.csv","r");
$fileCountable = file("todo.csv");
for ($i = 0; $i < count($fileCountable); $i++) {
$csvContent = fgetcsv($file, 1000, ",");
foreach ($csvContent as $value){
$var[$i] = $value;
}
echo '<br>';
}
fclose($file);
}
//
// ─── MAIN CODE ─────────────────────────────────────────────────────────────
//
writeInList();
include 'todolist.phtml';`
我很抱歉,如果它已被讨论过。我已经搜查了很多,发现了类似的问题,但不能获得,使其在自己的代码工作。非常感谢提前如果有人花时间去看看我的代码!
这也是我第一次在这里发帖,所以我希望我做的是正确的。
你做得相当不错。你可以看一下fgetcsv文档了解更多。我希望你发挥作用的变化,因此会得到参数为输入(尽量避免使用global
)
// insert data
function writeInList($user_entry, $path ) {
$file = fopen($path ,"a");
fputcsv($file, $user_entry, ",");
fclose($file);
}
//extract data
function getList($path, $limit = 100000) {
$file = fopen($path, "r");
if (!$file) return null; // or throw error or print to log
$allRows = []; //
while (($data = fgetcsv($file, $limit, ",")) !== FALSE) {
$allRows[] = $data; // as fgetcsv return array already exlode by ","
}
fclose($file);
return $allRows;
}
现在你有从getList
2维数组的回报。用途是作为getList("todo.csv")
而显示为你高兴。
希望帮助!