2

我有一个 CSV 文件,其内容如下。

1 2 3 4 \t 45 56 67

如上所示,在值 4 之后,我有一个制表符空间。我只需要读取值直到制表符空间。我可以打开 CSV 文件并读取到制表符分隔符,如下所示。

$file = fopen("outputfile.csv","r");
//I am reading till tab space.
while ($line = fgetcsv($file, 0, "\t") !== false)

但是,现在我需要将所有值读取到制表符空间到 PHP 数组中以进行一些操作。我怎样才能达到同样的效果?

4

3 回答 3

2

尝试:

while ($line = fgetcsv($file, 0, "\t") !== false) {
    $columns = str_getcsv($line, ' '); //or use explode()
}
于 2013-10-29T17:01:11.603 回答
1

我会将行拆分为“制表符之前”和“制表符之后”组件,并且只对“制表符之前”的一半进行解析:

$file = fopen("outputfile.csv","r");

// for each line in the file, until EOF
while( ($line = fgets($file)) !== false) {
    // split out the tab char:
    $beforeTab = explode( "\t", $line)[0];
    // now, parse the CSV part
    $parsedCSV = str_getcsv( $beforeTab);
    // do what you need with the parsedCSV array.
}
于 2013-10-29T17:03:05.653 回答
1

explode() 是要走的路。

$file = fopen("outputfile.csv","r");
while ($line = fgetcsv($file, 0, "\t") !== false)
{
    $array = explode(' ', $line);
}
于 2013-10-29T17:01:48.587 回答