我正在将csv文件转换为json,所以我可以在javascript中使用它。 我是如何新的PHP编程我谷歌的方法来做到这一点,我发现以下代码来做到这一点:
$csv= file_get_contents($file);
$array = array_map("str_getcsv", explode("\n", $csv));
json_encode($array);
?>
但是“str_getcsv”会将我的数组变成字符串吗?那么这是否意味着我以后不能在javascript中使用该数组中的值来操纵它们? 替代方案是什么? thx提前
答案 0 :(得分:0)
str_getcsv
将您的csv行(字符串)转换为数组(阅读文档http://php.net/manual/en/function.str-getcsv.php)。
该脚本的作用是:
$csv= file_get_contents($file);
将文件内容放在变量$csv
$array = array_map("str_getcsv", explode("\n", $csv));
会将字符串分解为每个新行(explode("\n", $csv)
)分隔的字符串数组,然后为每个数组元素调用函数str_getcsv
json_encode($array);
将数组作为json字符串返回因此,您应该添加echo
以在输出中包含字符串,以便将其用作javascript对象。像
<script>
var json = <?php echo json_encode($array);?>
</script>
这样做的意思是str_getcsv
不解析完整的csv而只解析一行。该脚本以紧凑的方式遍历每一行。
另一种方法是打开文件处理程序并使用函数fgetcsv。
答案 1 :(得分:0)
功能str_getcsv
根据文档:
Parses a string input for fields in CSV format and returns an array
containing the fields read.
您应该注意到PHP并未针对此类操作进行了优化。如果您正在阅读大文件,则至少应该使用fopen
和fgetcsv
来减少内存使用量。