【发布时间】:2011-11-12 09:41:55
【问题描述】:
我使用fgetcsv() 从 csv 文件中提取一些数据。代码如下:
<?php
$csv = fopen("csv/contracts.csv","r");
while(!feof($csv)){
$line = fgetcsv($csv,1024);
if($line[0] == '')
continue;
?>
<li><?php echo "$line[2] - $line[3]"; ?></li>
<?php
}
?>
这在我的本地机器上运行良好,但是当我将它上传到我的服务器上时它变成了一场灾难!我将$delimiter 和"," 传递给fgetcsv(),但没有任何改变!
怎么了?
PHP 版本:
在本地:5.3.5
在服务器上:5.2.17
[编辑]
我的本地输出是这样的:
s1 - t1
s2 - t2
s3 - t3
s4 - t4
但是在服务器上:
-
-
s3 -
s4 -
【问题讨论】:
-
请定义“灾难”——到底出了什么问题?
-
只是一个想法:连字符可能被视为减法运算符。你试过这个:
<?php echo $line[2] . ' - ' . $line[3]; ?>? -
我试过了。没运气。还是谢谢
-
它也可能与行尾有关(特别是,如果您在本地使用 Windows 并将其上传到 linux 服务器)。看看这个:stackoverflow.com/q/2321064/690897 和一些相关的帖子,也许你会在那里找到一些东西。另一个常见问题似乎是 CSV 中的
\"。 -
嗯...不错的猜测。我添加了
ini_set('auto_detect_line_endings',TRUE);,但没有解决问题。我还在服务器上使用 cPanel 查看了我的 csv 文件。好像没事!