php - 使用分隔符数组

标签 php csv delimiter

我正在使用 fgetcsv 在我的应用程序中读取 csv 文件。问题是我不知道我的用户是否会使用 |; 作为分隔符。如果我什么都不告诉 fgetcsv 它只会接受 , 但如果我告诉它使用特定的定界符它只会接受。

我现在做的是:

while (($row = fgetcsv($fileHandle, 4096)) !== false) { 

我想要的是这样的:

while (($row = fgetcsv($fileHandle, 4096, array(',', ';', '|'))) !== false) {

这有可能以某种简单的方式实现吗?将分隔符限制为一个特定字符似乎很奇怪,因为 CSV 未标准化。

最佳答案

如果您不知道 csv 文件的分隔符,则无法可靠地确定它。以这个简单的例子为例:

foo;bar,hello;world

什么是分隔符? , 还是 ;?如果您要传递一个数组 array(',',';') 您期望 fgetcsv() 返回什么数据?

如果您不知道分隔符,则需要询问用户。

关于php - 使用分隔符数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30255532/

相关文章:

PHP 如果找到特定值范围,则从主数组中删除子数组

php - 两个表的联接问题

java - 如何在不捕获错误分隔符的情况下解析 CSV?

c# - 如何在 FileHelpers 中使用动态 CSV 定界符?

string - 字符串列表中的笛卡尔积

php - preg_split 将所有结果捕获到数组中

php - URL 路径重定向到单个 php 文件

javascript - 以更低的成本找到最佳组合

javascript - 将数据从 GoogleChart 保存到 CSV

java - 在空白处分割文本文件