[請益] strpos會抓錯位置?

看板PHP作者 (累人啊....)時間13年前 (2012/03/01 23:36), 編輯推噓2(2011)
留言13則, 5人參與, 最新討論串1/2 (看更多)
今天在試的時候遇到的問題,所以我又寫了一個範例來測試,如下 $test[0]="1234567,abcde"; $test[1]="1234567890,aaaaa"; $test[2]="12345,aabbcc"; for($i=0;$i<3;$i++){ $str=$test[$i]; print $str."<br>"; $pos=strpos($test[$i],","); print $pos."<br>"; } 跑出來的結果 1234567,abcde 10 1234567890,aaaaa 10 12345,aabbcc 5 第一個答案是錯的,當有一大筆資料時,第一筆都會錯,但後面的都會對 請問是為什麼呢? -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 114.37.128.68

03/01 23:56, , 1F
我直接copy你的這片段程式碼,三個結果都是對的耶@@
03/01 23:56, 1F

03/02 00:09, , 2F
@@剛試了一下,什麼都沒改,結果又對了@@
03/02 00:09, 2F

03/02 00:09, , 3F
反正從csv讀進來的資料,一樣,第一筆結果會是錯的
03/02 00:09, 3F

03/02 00:10, , 4F
如果csv的資料第一行空白,結果都是對的,好奇怪
03/02 00:10, 4F

03/02 00:32, , 5F
第一筆前面可能有BOM,你用 hex editor 打開來看就知道了
03/02 00:32, 5F

03/02 00:33, , 6F
或是有其他神秘的 header 在那
03/02 00:33, 6F

03/02 07:55, , 7F
看了一下,真的有沒錯,可是我該怎麼避免掉這個情況
03/02 07:55, 7F

03/02 07:56, , 8F
主要是php,mysql,excel間的處理excel的資料要寫入mysql
03/02 07:56, 8F

03/02 07:57, , 9F
先不考慮板上說的phpexcel好了,因為我的表格並不複雜XD
03/02 07:57, 9F

03/02 08:07, , 10F
第一行空下來?
03/02 08:07, 10F

03/02 10:18, , 11F
trim試試看
03/02 10:18, 11F

03/02 16:31, , 12F
如果不能 trim 掉,那就直接把檔案開頭略過 3bytes 在處理
03/02 16:31, 12F

03/02 16:31, , 13F
就好,看起來是固定的。
03/02 16:31, 13F
文章代碼(AID): #1FJvUQeE (PHP)
討論串 (同標題文章)
文章代碼(AID): #1FJvUQeE (PHP)