Php 最佳方法:解析CSV文件并使用AJAX将其传回前端
我有一个CSV文件,上传到我的服务器上,PHP脚本将通过AJAX解析并将输出返回到JavaScript CSV文件由两行组成。第一行包含列名,第二行包含数据。我正在尝试编写一个脚本,以Javascript可以使用的形式对其进行解析,以生成用这些数据填充的文本字段和标签。我目前的方法是:Php 最佳方法:解析CSV文件并使用AJAX将其传回前端,php,javascript,ajax,json,Php,Javascript,Ajax,Json,我有一个CSV文件,上传到我的服务器上,PHP脚本将通过AJAX解析并将输出返回到JavaScript CSV文件由两行组成。第一行包含列名,第二行包含数据。我正在尝试编写一个脚本,以Javascript可以使用的形式对其进行解析,以生成用这些数据填充的文本字段和标签。我目前的方法是: if ( $_FILES['parameter_file']['tmp_name'] ) { $paramfile = fopen($_FILES['parameter_file']['tmp_name
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);
}
if($\u FILES['parameter\u file']['tmp\u 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)));
对于($k=0;$k我宁愿使用/and then。在这两者之间,您总是可以洗牌数据,以使输出的JSON看起来像您想要的那样
一般来说,如果库函数可用,最好使用它们。如他在给is your friend的评论中所述(顺便说一句,在PHP 5.3之前是不可用的)
代码应该是一个简单的as(错误处理留给OP):
给定以下内容的CSV文件:
id,name,value
1,first,value1
2,second,value2
3,third,value3
这将为您提供一个带有
array(
0 => 'id',
1 => 'name',
2 => 'value'
)
以及一个带有
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'
)
)
根据需要调整代码…因为他正在解析物理文件,fgetcsv
可能是更好的选择。
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'
)
)