使用PHP读取Excel csv行被切断

当我读取CSV(用PHPExcel,fgetcsv())我想在我的数据库中导入行被切断。

1 fields in line 1: ProCatId;CatName;CatDescription;CatNameisactive;CatNameiswebactive;ProSubCatId;SubCatName;SubCatDesc;SubcatWebDiscription2;SubcatWebDiscription3;SubcatCatName;SubcatSequencenr;SubCatNameisactive;SubCatNameiswebactive;DisplayMode;ProductId;ProductName;ProductDescription;ProductCatName;ProductSubCatName;Express;NextDayDelivery;Sequencenr;Drukvorm;Afwerking;BreedteDrukwerk;HoogteDrukwerk;Papier;PrinterName;PrinterProductCode;WebDescription;WebDescription2;WebDescription3;DeliveryInfo;NextDayPrice;NextDayTransferPrice;NextDayCostPrice;Meta-Keywords;Meta-Description;URL-Trefwoorden;Titel;Filepath_icons;Format;MaterialType;NoOfPages;PrintFront;PrintBack;BleedTop;BleedBottom;BleedLeft;BleedRight;MINH;MAXH;MINW;MAXW;De 1 fields in line 2: liveryScheduleId;DeliveryScheduleName;CentralProductDetailId;ClaimsId;ClaimsName;DruktechniekenId;DruktechniekenName;Verzameld op;Vast;Variabel;vorm;"prijs 1 fields in line 3: drukken 

这些字段应该全部在行1中。当我使用php函数file_get_contents()时,内容看起来是有效的。 在Excel中加载文件也没有问题。

我使用下面的代码(,分开):

 <?php if (($handle = fopen($inputFileName, "r")) !== FALSE) { while (($data = fgetcsv($handle, 1000, ",")) !== FALSE) { $num = count($data); echo "<p> $num fields in line $row: <br /></p>\n"; $row++; for ($c=0; $c < $num; $c++) { echo $data[$c] . "<br />\n"; } } fclose($handle); } ?> 

让我们看看文档所说的:

 array fgetcsv ( resource $handle [, int $length = 0 [, string $delimiter = "," [, string $enclosure = '"' [, string $escape = "\" ]]]] ) 

你传递一个$handle ,很好。

你的意思是“切断一行1000个字符” – 用你的数据,这可能会成为一个问题,考虑一个更高的限制(8000?)

而你在说“田地被隔开”。 看起来好像他们实际上被隔开了; 。 也许这也是问题的一部分?

(另外,fgetcsv不是二进制安全的,所以如果你的数据不是纯ASCII的, 请看这个问题 。)