用PHP处理cvs文件中的特殊字符

用PHP处理cvs文件中的特殊字符,php,csv,character,Php,Csv,Character,我想使用PHP函数“fgetcsv”来读取CSV文件并将一些元素存储在数组中,以便以后使用。问题是我的文件有点奇怪: Date,From,To,"Dep time","Arr time",Duration 2012-04-06,"Abu Dhabi / Abu Dhabi (AUH/OMAA)","Brussels / Brussels (BRU/EBBR)",09:18:00,14:12:00,07:54:00 所以从我所看到的,当一个名字由几个词组成时,会出现一些“”。你知道怎么处理吗?我

我想使用PHP函数“fgetcsv”来读取CSV文件并将一些元素存储在数组中,以便以后使用。问题是我的文件有点奇怪:

Date,From,To,"Dep time","Arr time",Duration
2012-04-06,"Abu Dhabi / Abu Dhabi (AUH/OMAA)","Brussels / Brussels (BRU/EBBR)",09:18:00,14:12:00,07:54:00

所以从我所看到的,当一个名字由几个词组成时,会出现一些“”。你知道怎么处理吗?

我相信你说的是.csv中的一些元素用引号括起来的事实?PHP有一个用于读取CSV数据的内置函数。在这里查看更多信息

编辑:我应该澄清一下。fgetcsv()函数将为您处理机柜。如果愿意,可以指定默认双引号以外的其他字符

例如:

$fileHandle = fopen('/path/to/file.csv', "r");
while (($data = fgetcsv($fileHandle, 1000, ",")) !== FALSE) {
      // $data is now an array of a line from your file, each loop will go to the next line
      print_r($data); // will show you the array from each line of the file
      echo "<br>";
}
fclose($fileHandle);
$fileHandle=fopen('/path/to/file.csv',“r”);
while(($data=fgetcsv($fileHandle,1000,“,”)!==FALSE){
//$data现在是文件中一行的数组,每个循环将转到下一行
print_r($data);//将显示文件每行的数组
回声“
”; } fclose($fileHandle);
我实际上正在尝试使用此功能,但不知道如何使其工作。我正在尝试这样的方法:while(!feof($file_handle)){$line_of_text[]=($file_handle,1024,','\r');}它几乎可以工作,但是出现的数组有一些问题(例如,更改行时,由于上一行的最后一个元素和下一行的第一个元素保持在数组的同一索引上,因此出现了错误)。谢谢你的帮助!仅链接的答案是Discorgedwell,这是我第一次使用Stackoverflow,而且评论很糟糕,我希望你能读到我写的那行…@Cedricpriels你的问题对我来说很糟糕,没有代码示例。所以不要成为免费的迪克hwlp@Dragon-我想他指的是“评论功能”,你可以写评论的方式,而不是用户正在写的评论。-
每个字段可能会也可能不会用双引号括起来
Uhm,这正是
fgetcsv
处理的事情之一……你试过了吗?当然,我试过了。但问题是,并非所有元素都是用同样的方式写的(有时,它们有一些引号,函数没有检测到行的变化)。但多亏了ThrowBackDewd的帮助,我终于做到了。