PHP检测Windows或Unix格式的csv或txt文件?

时间:2013-05-02 23:03:38

标签: php sql csv

我使用PHP将文件上传到服务器,然后将路径传递给SQL存储过程,该存储过程执行BULK INSERT将文件导入SQL表。

在SQL中,我知道如何让BULK INSERT与基于Windows和Unix的csv和txt文件一起使用,但我需要知道它是哪种格式。

我希望我能在PHP中解决这个问题,然后将其传递给存储过程。然后我可以相应地更新ROWTERMINATOR

在PHP中是否有办法检测csv或txt是基于Windows还是基于Unix?

任何帮助都会很棒。

谢谢!

1 个答案:

答案 0 :(得分:3)

从文件中获取第一行。检查最后两个字符或最后一个字符是否为:

  • \r\n - >窗
  • \n - > UNIX

示例:

$lines = file('test.csv');
$line = $lines[0];

switch(TRUE) {
    case substr($line, -2) === "\r\n" :
        echo "windows";
        break;
    case substr($line, -1) === "\n" :
        echo "unix";
        break;
    default :
        // pigs can fly
        echo "unknown line ending"
        break;
}