gpt4 book ai didi

php - Windows csv和mac csv有什么区别?

转载 作者:行者123 更新时间:2023-12-01 16:00:42 27 4
gpt4 key购买 nike

我正在尝试使用此代码解析csv文件

if (($handle = fopen($csvFilePath, "r")) !== FALSE) {
$c=0;
$string="";
while (($data = fgetcsv($handle, 1000, ",")) !== FALSE) {
if($c>0)
{
if(($data[$email]!="") and ($data[$firstname]!="") and ($data[$lastname]!=""))
{
$string.='(1,';
$string.="'".$data[$email]."',";
$string.="'".$data[$firstname]."',";
$string.="'".$data[$lastname]."',";
$string.="'".Yii::app()->params['clientimporttext']."'";

$string.='),';
}
}
$c++;
}
fclose($handle);

}

与Windows CSV正常工作。
但是当我从Mac创建一个csv并分析它不起作用时(它无法识别行尾),

另外,当我用mac打开相同的Windows csv并使用相同的代码进行解析时,它将无法正常工作。但是当我将其另存为Windows csv时。它再次起作用。

所以实际上wat是Mac csv和Windows csv之间的区别吗?
这两个分隔符是否不同?
我应该如何更改代码才能使其同时工作?

最佳答案

答案在PHP doc注释中:

http://be2.php.net/manual/en/function.fgetcsv.php

注意:如果在Macintosh计算机上或由Macintosh计算机读取文件时,PHP无法正确识别行尾,则启用 auto_detect_line_endings 运行时配置选项可能有助于解决问题。

问题在于Windows和类unix的计算机(如Mac)上的行尾之间存在差异:windows ='\r\n'unix = '\n'
解决方法:在打开文件之前添加以下行:

ini_set('auto_detect_line_endings',TRUE);

关于php - Windows csv和mac csv有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16523734/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com