如何從檔案的內容判斷一個檔案是不是.csv檔案

來源:互聯網
上載者:User
怎麼從檔案的內容判斷一個檔案是不是.csv檔案
這裡面不允許通過擴張名。怕別人改擴張名
還有我安裝裡面是否包含逗號不行,因為有的檔案是讀出的內容也是亂碼?結果它就會把亂碼讀成逗號?
而且我需要判斷.csv檔案的嚴謹方法和理論,不能想當然的。其實僅按逗號肯定是不嚴謹的啊,其實是亂碼可能變成逗號,其二一個檔案裡面有一個逗號算是合格的csv檔案了

謝謝,求高手

------解決方案--------------------
沒辦法
------解決方案--------------------
試試str_getcsv解析
http://php.net/manual/en/function.str-getcsv.php
用是否error來判斷
------解決方案--------------------
任何情況下都不會因讀取逗號而導致亂碼

csv檔案是文字檔,唯一可識別的地方就是每行都有相等數量的資料行分隔符號(預設是逗號)
考慮到內容中可能存在逗號(此時內容需要用引號括起),當檢測到80%以上行的資料行分隔符號數量相等時,就可認為是合格的csv檔案

另外非標準的csv,即字元類型的內容未用雙引號括起的csv。至少在 php5.3 for win 是無法用
fgetcsv 或 str_getcsv 函數正確讀取的
------解決方案--------------------
csv 檔案表達的是一個陣列
如果每行的列數不等,就不是csv
------解決方案--------------------
全稱

  Comma Separated Values
編輯本段
規則

  1 開頭是不留空,以行為單位。
  2 可含或不含列名,含列名則居檔案第一行。
  3 一行資料不垮行,無空行。
  4 以半形逗號(即,)作分隔字元,列為空白也要表達其存在。
  5 列內容如存在半形逗號(即,)則用半形引號(即"")將該欄位值包含起來。
  6 列內容如存在半形引號(即")則應替換成半形雙引號("")轉義,並用半形引號(即"")將該欄位值包含起來。
  7 檔案讀寫時引號,逗號操作規則互逆。
  8 內碼格式不限,可為 ASCII、Unicode 或者其他。
  9 不支援特殊字元
------解決方案--------------------
按規則要求來查
------解決方案--------------------
你希望使用者的csv是什麼格式?另外對於檔案來說,沒有亂碼的概念,只有位元組的概念,
亂碼只是若干位元組不能在指定的字元集(比如GB2312)裡顯示而已。
------解決方案--------------------
以半形逗號(即,)作分隔字元,列為空白也要表達其存在
這點很重要
------解決方案--------------------
找一個csv導成其他格式的類 能導成功的就是 不能的就不是,這曲線救國了吧
------解決方案--------------------
探討

引用:
以半形逗號(即,)作分隔字元,列為空白也要表達其存在
這點很重要

都跟你說了,這個等於沒說?
要是你的一個word裡面也有逗號,你讀出內容,請問你知道這個逗號是分割符還是有效字元嗎?


你可以按照逗號來讀取一個.csv檔案

但是你僅用有沒有逗號來區別是不是。csv檔案 這個太牽強。理由太不充分

這個逗號不是充要條件
  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.