簡體   English   中英

為什么在導入CSV文件時將多余的空行添加到我的CSV文件中?

[英]Why are extra empty rows being added to my CSV file when it is imported?

我有一個腳本,可以為我的網站下載和上傳一個csv文件(用於庫存)。 當我手動下載並上傳文件時,一切都很好。 當腳本運行以下載和上傳文件時,csv文件中的每一行之后都會添加多余的空行。

我是通過直接從原始源下載文件並將其與通過腳本上傳的文件進行比較而發現的。

從那里,文件被導入到mysql數據庫。

有人知道如何防止這些空行添加到csv文件嗎? 將行上載到數據庫而不向表中添加任何新內容時,這會引起問題。

編輯:將csv信息發送到mysql數據庫的代碼:

$file = "./file.csv";

$handle = fopen($file, r);

$firstentry = 0;

while($csv = fgetcsv($handle))
{
if($firstentry == 0)
{
    $firstentry++;
}
else
{
    $csv[7] = strtotime($csv[7]);

    $csv[7] = date("Y-m-d H:i:s",$csv[7]);

    if($csv[18] == 217 || $csv[18] == 38)
    {
            if(!mysql_query("INSERT IGNORE INTO TABLE_NAME 
                (Col1, Col2, Col3, Col4, Col5,
                     Col6, Col7, Col8, Col9, Col10,                
                Col11, Col12, Col13, Col14, Col15,
                     Col16, Col17, Col18, Col19, Col20,
                Col21, Col22, Col23) VALUES
                ('".md5($csv[0].$csv[2])."','".addslashes($csv[0])."','".addslashes($csv[1])."','".addslashes($csv[2])."','".addslashes($csv[3])."','".addslashes($csv[4])."',
                    '".addslashes($csv[5])."','".addslashes($csv[6])."','".addslashes($csv[7])."','".addslashes($csv[8])."','".addslashes($csv[9])."',
                '".addslashes($csv[10])."','".addslashes($csv[11])."','".addslashes($csv[12])."','".addslashes($csv[13])."','".addslashes($csv[14])."',
                    '".addslashes($csv[15])."','".addslashes($csv[16])."','".addslashes($csv[17])."','".addslashes($csv[18])."','".addslashes($csv[19])."',
                '".addslashes($csv[20])."','".addslashes($csv[21])."')"))
            {                    
                exit("<br>" . mysql_error());
            }
            else
            {
                print_r($csv);
                echo " insert complete<br><br>";
            } 


    }        
}
}

下載/上傳CSV文件的代碼:

<?php
set_time_limit(0);
ini_set('memory_limit','512M');
ini_set('upload_max_filesize', '64M');
include('Net/SFTP.php');

//Original Location (SFTP)
$sftp2 = new Net_SFTP('example.com');
if (!$sftp2->login('username', 'password')) {
exit('Login Failed');
}

//echo $sftp2->pwd() . "\r\n";
$sftp2->get('file.csv', 'file.csv');
//print_r($sftp2->nlist());

echo "Success!";
?>

我為此使用Source Forge( http://phpseclib.sourceforge.net/ )。

下載后,您可以在文件內容上嘗試一下:

$contents=preg_replace('/(\r\n|\r|\n)/s',"\n",$contents);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM