[請益] 用fgetcsv讀到"0001"時會變成"1"的字串

看板PHP作者 (丁丁)時間15年前 (2009/05/14 18:02), 編輯推噓4(406)
留言10則, 5人參與, 最新討論串1/2 (看更多)
我有一個csv檔,內容是: 79,"新人","0001","1234","100","099816" 用$fp=fopen(....)開檔後, 用 list($sn,$name,$schoolID,$passwd,$grade,$phone)=fgetcsv($fp,1000) 把這些資料存進變數裡 但是調查了很久,發現fgetcsv在讀"0001"後存給$schoolID, 結果會變成「$schoolID的型別為string,內容是1」 上網找了好多資料,還是想不到這個解決辦法 請問該怎麼讓fgetcsv在讀"0001"時,就讓它判定為"0001"而不是"1"呢? -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.113.98.166

05/14 19:37, , 1F
settype($schoolID,'integer');
05/14 19:37, 1F

05/14 21:03, , 2F
$schoolID最後的型別是要string,問題好像出在
05/14 21:03, 2F

05/14 21:04, , 3F
fgetcsv讀到"0001"時 先轉成int成1,再轉成
05/14 21:04, 3F

05/14 21:04, , 4F
string成為"1" 再把它存進$schoolID裡...
05/14 21:04, 4F

05/15 19:10, , 5F
不要用fgetcsv,改用fgets不就好了
05/15 19:10, 5F

05/15 21:56, , 6F
樓上知道 fgetcsv 和 fgets 的差別嗎?
05/15 21:56, 6F

05/15 22:45, , 7F
呵,省事吧;學 C 時所有指令都從 byte 打造;雖然有標
05/15 22:45, 7F

05/15 22:45, , 8F
準函式庫,但教基礎打造的書還是很多,且函式庫如果附
05/15 22:45, 8F

05/15 22:46, , 9F
source code,的確就是那樣;但 C 是 Compile 語言,不
05/15 22:46, 9F

05/15 22:46, , 10F
會損失速度,PHP 也打造的話就吃虧了
05/15 22:46, 10F
文章代碼(AID): #1A2-mxcr (PHP)
文章代碼(AID): #1A2-mxcr (PHP)