从逗号或制表符分隔的文本文件中读取

vel*_*eli 23 php

我需要从可以是逗号或制表符分隔的文件中读取数据.我现在有一个函数getcsv但它只接受一个可能的分隔符.

任何想法如何处理这个?

谢谢.

NSS*_*Sec 38

从PHP 5.3开始,您可以使用str_getcsv()来使用不同的分隔符读取各行.

$someCondition = someConditionToDetermineTabOrComma();

$delimiter = $someCondition ? "," : "\t";

$fp = fopen('mydata.csv', 'r');

while ( !feof($fp) )
{
    $line = fgets($fp, 2048);

    $data = str_getcsv($line, $delimiter);

    doSomethingWithData($data);
}                              

fclose($fp);
Run Code Online (Sandbox Code Playgroud)


ZZ *_*der 11

您可以为fgetcsv()指定分隔符.这是读取制表符分隔文件的示例,

 while (($data = fgetcsv($handle, 1000, "\t")) !== FALSE) {
    ...
 }
Run Code Online (Sandbox Code Playgroud)


小智 6

这是一个将读取mydata.txtCSV 字段的示例

$tab = "\t";

$fp = fopen('mydata.txt', 'r');

while ( !feof($fp) )
{
    $line = fgets($fp, 2048);

    $data_txt = str_getcsv($line, $tab);

    //Get First Line of Data over here
    print_r($data_txt);
    exit;
}                              

fclose($fp);
Run Code Online (Sandbox Code Playgroud)