我有一个用 Open Office 电子表格生成的 csv,分隔符是逗号,文本包装器是“。
我只想列在我的电子表格中,因为它是一些键值列表,例如:
a -> b
aa -> bb
aaa -> bbb
所以我的电子表格只有两列,每一行包含一个键值对,一个单元格中的每个键,一个单元格中的每个值。但是当我使用
if ($_FILES ['userfile'] ['error'] == UPLOAD_ERR_OK &&
is_uploaded_file ( $_FILES ['userfile'] ['tmp_name'] )) {
$csvfile = file_get_contents ( $_FILES ['userfile'] ['tmp_name'] );
}
$dict = str_getcsv($csvfile);
然后 var_dump $dict ,我得到
array(4) { [0]=> string(1) "a" [1]=> string(6) "b "aa"" [2]=>
string(8) "bb "aaa"" [3]=> string(3) "bbb" }
请参阅索引 1,其中第一个值“b”和第二个键“aa”存储在一个索引中。
OpenOffice 在值后面没有逗号,也就是在新行之前。如何避免两个字符串出现在一个索引中?我可以以某种方式告诉 str_getcsv,当两个“彼此跟随时,它也是一个分隔符?或者我可以添加始终包含 # 的第三列并说“如果它包含 #,它是一个换行符?(我试过了,但无法管理..)或者甚至有一个函数,它需要 csv 中的键、值、换行符?
这样做的正确方法是什么?我敢肯定人们经常这样做,但我不知道如何用谷歌搜索它。
谢谢!