preg_split:包括空字段

时间:2017-07-03 10:22:53

标签: php string preg-split

我想分割一个TSV字符串。结构是:

 abc\tdef\tghi\tjklm

其中\ t是制表符。

如果我使用preg_split来分割这样的字符串$ i

 $field=preg_split("/\t/", $i);

$ field [3]是jklm。

但是,如果我有另一个字符串

abc\tdef\t\t

$ field [3]不是有效索引。

如何强制空字段进入$ field,这样所有$ field数组都会有相同数量的索引?

2 个答案:

答案 0 :(得分:1)

如果您的问题仅用于提取标签分隔符值数据,则可以使用内置版本 在php函数(fgetcsv())中。它比使用我们自己的功能更稳定。请试试这个

if (($handle = fopen("test.csv", "r")) !== FALSE) {
    // extract csv using tab delimiter
    while (($data = fgetcsv($handle, 1000, "\t")) !== FALSE) {
        print_r($data);
    }
    fclose($handle);
}

答案 1 :(得分:0)

喜欢这个?

$str ="abc\tdef\t\t";

Var_dump(explode("\t", $str));

https://3v4l.org/7qOPJ