【发布时间】:2016-12-14 21:50:59
【问题描述】:
我对 PHP 中的 Strtok() 函数非常熟悉,而且过去让该函数对字符串正常工作没有任何问题。但是,我目前必须阅读一个 .csv 文本文件(我已经成功完成),其中每行由 6 个字段组成,如下所示:姓氏、名字、地址、城市、地区、邮政编码\r\n
我必须使用 Strok() 将这些按分隔符拆分并将单词标记为字段(即最后一个、第一个、地址等)。我计划使用一个以姓氏作为主键的关联数组,这样我就可以将数据插入到一个 HTML 表中,该表已创建并正在工作。我现在的问题是正确拆分文件,因为它有大约 200 行由这 6 个字段组成,并将字符串正确存储为数组的字段,因此数据结构是我遇到问题的地方。到目前为止,这是我所拥有的:
$inputFile = fopen("input.csv","r");
$delimiters = ",";
$token = strtok($inputFile, $delimiters);
$n=1;
while ($token){
echo "Token $n: $token <br>";
$token = strtok($delimiters);
$n++;
}
显然,表是在它下面创建的,但由于我还没有完成数据结构,所以我没有它的字段。我认为我的令牌循环对于这个问题可能是不正确的,但我从书中的一个早期示例中提取了一些内容,并在我的令牌过程有效但文件结构不同的地方进行了练习。感谢您对此的任何指导或帮助。
【问题讨论】:
-
CSV 的示例行是什么?您从哪里获得这些“单词”以用作关联数组键?
-
基本上每一行都保存这6个值,然后返回到下一个。这里有两个例子:
-
SELBY,AARON,1519 Santiago de los Caballeros Loop,Mwene-Ditu,East Kasai,22025 GOOCH,ADAM,230 Urawa Drive,Adoni,Andhra Pradesh,2738
-
PHP 已经内置了 parsing csv files 的函数。为什么不使用这些?
-
有两种很好的方法可以做到这一点,令牌不是其中之一。