作者tyc5116 (累人啊....)
看板PHP
标题[请益] strpos会抓错位置?
时间Thu Mar 1 23:36:55 2012
今天在试的时候遇到的问题,所以我又写了一个范例来测试,如下
$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
1F:→ thitbbeb:我直接copy你的这片段程式码,三个结果都是对的耶@@ 03/01 23:56
2F:→ tyc5116:@@刚试了一下,什麽都没改,结果又对了@@ 03/02 00:09
3F:→ tyc5116:反正从csv读进来的资料,一样,第一笔结果会是错的 03/02 00:09
4F:→ tyc5116:如果csv的资料第一行空白,结果都是对的,好奇怪 03/02 00:10
5F:推 chrisQQ:第一笔前面可能有BOM,你用 hex editor 打开来看就知道了 03/02 00:32
6F:→ chrisQQ:或是有其他神秘的 header 在那 03/02 00:33
7F:→ tyc5116:看了一下,真的有没错,可是我该怎麽避免掉这个情况 03/02 07:55
8F:→ tyc5116:主要是php,mysql,excel间的处理excel的资料要写入mysql 03/02 07:56
9F:→ tyc5116:先不考虑板上说的phpexcel好了,因为我的表格并不复杂XD 03/02 07:57
10F:→ tyf99:第一行空下来? 03/02 08:07
11F:→ mervynW:trim试试看 03/02 10:18
12F:推 chrisQQ:如果不能 trim 掉,那就直接把档案开头略过 3bytes 在处理 03/02 16:31
13F:→ chrisQQ:就好,看起来是固定的。 03/02 16:31