基本上,我需要一种上传CSV文件并将其保存到多维数组中的方法,如标题所示。
我在网上搜索了很多,在这里找到了一个jQuery csv插件:https://github.com/evanplaice/jquery-csv
jQuery库可以处理将CSV文件转换为多维数组的问题,尽管这是我真正遇到麻烦的上传部分。
我在如何将PHP和jQuery一起交互方面遇到了困难。我知道一个事实,PHP总是首先在服务器端调用,然后在客户端调用jQuery/Javascript。因此,我非常困惑如何允许一个用来通过PHP上传CSV文件,保存位置,将其传递给jQuery,然后将其保存在那里。
我确信这很可能是一项简单的任务,尽管我在任何地方都找不到答案。
我想这样做:
- 用PHP上传文件
- 使用PHP或jQuery将CSV保存为字符串
- 使用jQuery CSV加载项中的
$.csv.toArrays(csv);
将CSV解析为多维数组
非常感谢所有的帮助和建议,谢谢!
在html中创建一个简单的文件上传表单,当按下提交按钮时,该表单将通过post将文件上传到您的php脚本yourscript.php。请确保为您的文件类型输入命名一些好的名称,因为您需要在php中引用该名称
<form action="yourscript.php" method="post" enctype="multipart/form-data">
<input type="file" name="upload_file" />
<input type="submit" />
</form>
PHP yourscript.php
<?php
$csv_array = Array();
$file = fopen($_FILES['upload_file']['tmp_name'], 'r');
if($file){
while (($line = fgetcsv($file)) !== FALSE) {
//$line is an array of the csv elements
array_push($csv_array,$line);
}
fclose($file);
}
?>
<!DOCTYPE html>
<html>
<head>
<title></title>
<script>var your_array = <?php echo json_encode($csv_array); ?></script>
</head>
<body>
</body>
</html>
from如何使用PHP和fgetcsv函数从CSV文件创建数组
当你开始使用ajax处理文件上传时,事情会变得有点棘手,所以我建议你在尝试使用ajax进行文件上传