php讀取csv問題

來源:互聯網
上載者:User

測試環境php5.4,伺服器環境php5.2,伺服器上無法讀取,測試環境正常。 請問一下,我php讀取csv檔案的時候,帶雙引號的欄位能讀取出來,不帶雙引號的欄位讀取不出來,這個問題是怎麼回事呢?

在有的機器上面是正常的,在有的機器上面是不能讀取出來。

csv是excel產生的,查看了excel的協助檔案,當儲存格裡面有逗號的時候,會自動添加雙引號。 `
if (isset($_POST['import'])) {
$file = $_FILES['csv_goods'];
$file_type = substr(strstr($file['name'], '.'), 1);

// 檢查檔案格式if ($file_type != 'csv') {    echo '檔案格式不對,請重新上傳!';    exit;}$handle = fopen($file['tmp_name'], "rb");require_once('./function.php');$row = '';while ($data = fgetcsv($handle, 1000, ',')) {    unset($setsqlarr);    unset($rw);    unset($re);    $row++;    if ($row == 1)        continue;    $num = count($data);    for ($i = 0; $i < $num; $i++) {        //處理資料        //這裡讀取出來的資料,帶雙引號的正確,不帶雙引號的讀取不出來。    }}`  

回複內容:

測試環境php5.4,伺服器環境php5.2,伺服器上無法讀取,測試環境正常。 請問一下,我php讀取csv檔案的時候,帶雙引號的欄位能讀取出來,不帶雙引號的欄位讀取不出來,這個問題是怎麼回事呢?

在有的機器上面是正常的,在有的機器上面是不能讀取出來。

csv是excel產生的,查看了excel的協助檔案,當儲存格裡面有逗號的時候,會自動添加雙引號。 `
if (isset($_POST['import'])) {
$file = $_FILES['csv_goods'];
$file_type = substr(strstr($file['name'], '.'), 1);

// 檢查檔案格式if ($file_type != 'csv') {    echo '檔案格式不對,請重新上傳!';    exit;}$handle = fopen($file['tmp_name'], "rb");require_once('./function.php');$row = '';while ($data = fgetcsv($handle, 1000, ',')) {    unset($setsqlarr);    unset($rw);    unset($re);    $row++;    if ($row == 1)        continue;    $num = count($data);    for ($i = 0; $i < $num; $i++) {        //處理資料        //這裡讀取出來的資料,帶雙引號的正確,不帶雙引號的讀取不出來。    }}`  

http://www.php.net/manual/en/function.fgetcsv.php

文檔裡寫的很清楚,第二個參數要求比你csv檔案裡最長行的長度要大,你要是不確定最長的行有多長就乾脆不用加第二個參數,另外第三個參數預設值就是,,完全沒有必要多此一舉。

while ($data = fgetcsv($handle, 1000, ',')) {
建議改成
while ($data = fgetcsv($handle)) {

最後:文檔裡的範例程式碼只是樣本,不要照抄!

  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.