4

可能重复:
使用 php 加载和读取 csv 文件

我有以下字符串:

Mr,Tom,Jones,Add1,Add2,"Add3,Add3 extra",Town,County,postcode,99999,888,777

我正在尝试将字符串放入如下所示的数组中:

Array
(
    [0] => Mr
    [1] => Tom
    [2] => Jones
    [3] => Add1
    [4] => Add2
    [5] => "Add3,Add3 extra"
    [6] => Town
    [7] => County
    [8] => Postcode
    [9] => 99999
    [10] => 888
    [11] => 777
)

如果你用“,”来分解字符串,它会将数组项 5 分成两部分,这是我试图避免的。原始数据来自 CSV。

最后,我正在尝试导入 CSV 并动态创建一个新的数据库,其中包含正确的标题和文件内容。

提前致谢。

4

4 回答 4

6

尝试fgetcsv()

fgetcsv — 从文件指针获取行并解析 CSV 字段

于 2012-08-10T15:04:19.460 回答
2
$array = str_getcsv( 'Mr,Tom,Jones,Add1,Add2,"Add3,Add3 extra",Town,County,postcode,99999,888,777', ',', '"' );

这将使您获得所需的阵列。

str_getcsv()

于 2012-08-10T15:11:07.260 回答
0
<?php
$row = 1;
if (($handle = fopen("test.csv", "r")) !== FALSE) {
    while (($data = fgetcsv($handle, 1000, ",")) !== FALSE) {
        $num = count($data);
        echo "<p> $num fields in line $row: <br /></p>\n";
        $row++;
        for ($c=0; $c < $num; $c++) {
            echo $data[$c] . "<br />\n";
        }
    }
    fclose($handle);
}
?>

fgetcsv

于 2012-08-10T15:05:27.977 回答
0

您可以使用str_getcsv()

str_getcsv — 将 CSV 字符串解析为数组

于 2012-08-10T15:06:40.397 回答