我使用PHP将文件上传到服务器,然后将路径传递给SQL存储过程,该存储过程执行BULK INSERT
将文件导入SQL表。
在SQL中,我知道如何让BULK INSERT与基于Windows和Unix的csv和txt文件一起使用,但我需要知道它是哪种格式。
我希望我能在PHP中解决这个问题,然后将其传递给存储过程。然后我可以相应地更新ROWTERMINATOR
。
在PHP中是否有办法检测csv或txt是基于Windows还是基于Unix?
任何帮助都会很棒。
谢谢!
答案 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;
}