Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/268.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用PHP读取Excel csv的行被切断_Php_Excel_Csv_Phpexcel_Fgetcsv - Fatal编程技术网

使用PHP读取Excel csv的行被切断

使用PHP读取Excel csv的行被切断,php,excel,csv,phpexcel,fgetcsv,Php,Excel,Csv,Phpexcel,Fgetcsv,当我读取要在数据库中导入的CSV(使用PHPExcel,fgetcsv())时,行被切断 1 fields in line 1: ProCatId;CatName;CatDescription;CatNameisactive;CatNameiswebactive;ProSubCatId;SubCatName;SubCatDesc;SubcatWebDiscription2;SubcatWebDiscription3;SubcatCatName;SubcatSequencenr;SubCat

当我读取要在数据库中导入的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中加载文件也没有问题

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


让我们看看

您正在传入一个
$handle
,很好

你是说“在1000个字符上截断一行”-用你的数据,这可能成为一个问题,考虑一个更高的极限(8000?)< /P> 您说的是“字段由

分隔”。看起来它们实际上是由
分隔的。也许这也是问题的一部分

(此外,fgetcsv不是二进制安全的,因此如果您的数据不是纯ASCII,)

让我们看看下面的说明:

您正在传入一个
$handle
,很好

你是说“在1000个字符上截断一行”-用你的数据,这可能成为一个问题,考虑一个更高的极限(8000?)< /P> 您说的是“字段由

分隔”。看起来它们实际上是由
分隔的。也许这也是问题的一部分


(另外,fgetcsv不是二进制安全的,因此如果您的数据不是纯ASCII,)

我尝试盲注。。将“;”替换为“,”我尝试盲目评论。。当我使用以下内容而不是fgetcsv()时,将“;”替换为“;”。“while($raw_data=fgets($handle,100000))!==FALSE){”,前两行是一行。但它仍然切断了第三行。当我使用以下内容而不是fgetcsv()时。“while($raw_data=fgets($handle,100000))!==FALSE){,前两行是一行。但它仍然切断了第三行。
<?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 = "\" ]]]] )