gpt4 book ai didi

php - 最佳方法: Parsing CSV file and Passing back to front end using AJAX

转载 作者:行者123 更新时间:2023-11-29 16:29:32 25 4
gpt4 key购买 nike

我有一个上传到我的服务器的 CSV 文件,其中 PHP 脚本将解析输出并通过 AJAX 将输出返回到 JavaScript。

CSV 文件由两行组成。第一行包含列名称,第二行包含数据。我正在尝试编写一个脚本,以 Javascript 可用的形式解析它,以生成填充此数据的文本字段和标签。我目前的方法是这样的:

if ( $_FILES['parameter_file']['tmp_name'] ) {

$paramfile = fopen($_FILES['parameter_file']['tmp_name'], 'r');
$header = fgets($paramfile);
$temp = explode(',', str_replace('"', '', rtrim(ltrim($header))));

$userdata = fgets($paramfile);
$temp2 = explode(',', str_replace('"', '', rtrim(ltrim($userdata))));

for ($k = 0; $k <= sizeof($temp) - 1; $k++) {
$userparam[strtolower($temp[$k])] = $temp2[$k];
}

fclose($paramfile);
}

我可以看到大量的总体改进空间,请随时指出。但主要问题是 json_encode 是否就是我所需要的。还有什么效率更高的吗?更好的主意吗?

谢谢大家

最佳答案

Lukáš Lalinský在他的评论中写道csl's answer fgetcsv()是你的 friend (顺便说一句 str_getcsv() 在 PHP 5.3 之前不可用)。

代码应该很简单(错误处理留给OP):

$headers   = null;
$rowNum = 0;
$tableData = array();
$handle = fopen($_FILES['parameter_file']['tmp_name'], 'r');
while (($data = fgetcsv($handle)) !== false) {
if ($rowNum == 0) {
// parsing the CSV header
$headers = array();
foreach ($data as $d) {
$headers[] = $d;
}
} else {
// parsing the data rows
$rowData = array();
foreach ($data as $d) {
$rowData[] = $d;
}
$tableData[] = array_combine($headers, $rowData)
}
$rowNum++;
}
fclose($handle);

给定一个 CSV 文件:

id,name,value
1,first,value1
2,second,value2
3,third,value3

这将为您提供一个 headers 数组,其中

array(
0 => 'id',
1 => 'name',
2 => 'value'
)

和一个 $tableData 数组

array(
0 => array(
'id' => '1',
'name' => 'first',
'value' => 'value1'
),
1 => array(
'id' => '2',
'name' => 'second',
'value' => 'value2'
),
2 => array(
'id' => '3',
'name' => 'third',
'value' => 'value3'
)
)

根据需要调整代码...

关于php - 最佳方法: Parsing CSV file and Passing back to front end using AJAX,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1534396/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com