注意:我要先说一句,我知道自己可能错过了一些非常显而易见的东西。我正在编码迷雾中,看不到简单的解决方案。
问题:我已经用PHP编写了一个脚本来解析一个.csv文件,选择包含电子邮件地址的列,并将它们放入数据库中。现在,我发现用户试图上传具有.csv文件类型但实际上不是逗号分隔符的文件。我正在尝试编写一个函数来正确确定定界符(制表符、换行符、空格等),但遇到了一些问题。我想获取所有这些地址的数组,以便键的数量会证明该定界符的可信度。
代码:
问题:我已经用PHP编写了一个脚本来解析一个.csv文件,选择包含电子邮件地址的列,并将它们放入数据库中。现在,我发现用户试图上传具有.csv文件类型但实际上不是逗号分隔符的文件。我正在尝试编写一个函数来正确确定定界符(制表符、换行符、空格等),但遇到了一些问题。我想获取所有这些地址的数组,以便键的数量会证明该定界符的可信度。
代码:
$filename = "../some/path/test.csv";
if (($handle = fopen($fileName, "r")) !== FALSE) {
$delimiters = array(',', ' ', "\t", "\n");
$delimNum = 0;
foreach ($delimiters as $delimiter) {
$row = 0;
while (($data = fgetcsv($handle, 1000, $delimiter)) !== FALSE) {
$data = (string)$data[0];
$delimiterList[$delimNum] = explode($delimiter, $data);
$row++;
}
$delimNum++;
}
die(print_r($delimiterList));
}
结果:
Array
(
[0] => Array
(
[0] => email
peter.parker@example.com
atticus.finch@example.com
steve.rogers@example.com
phileas.fogg@example.com
s.winston@example.com
paul.revere@example.com
fscott.fitzgerald@example.com
jules.verne@example.com
martin.luther@example.com
ulysses.grant@example.com
tony.stark@example.com
)
)
就像我说的一样,我知道这可能不是正确的方法来处理问题,所以非常感谢您提供的任何见解!