发新话题
打印

PHP关于strpos()函数

PHP关于strpos()函数

寻找字符串中某字符最先出现处。 语法: int strpos(string haystack, string needle, int [offset]); 返回值: 整数 关于该函数,PHP中文手册如下说明: 本函式用来寻找字串 haystack 中的字元 needle 最先出现的位置。值得注意的是 needle 只能是一个字元,中文字等就不适合了。若找不到指定的字元,则传回 false 值。参数 offset 可省略,用来Y表示从 offset 开始找。 错了吧。可以用中文的吧。只不过按照常理的一个汉字占两个字母身位…… 例如: 你看到的结果是7。为什么会这样?因为他是采用数组保存的(我猜应该是),所以是以"0"开头的。 也就是说,如果 $foo="this is a sample,just for test."; $num=strpos($foo,"t"); 所以使用该函数注意两点: 一,可以应用于中文(PHP中文手册说明有误); 二,他的计算方式。 如果想计算一个英文串中字符出现在第几个,$num++ 如果是中文,$num=($num+1)/2(这个并不全对,还要考虑一下标点符号全角半角的问题,自己想想吧) 还要注意,不仅可以应用中文字,还可以应用中文字符传串(既然一个中文字可以,几个当然也可以了)。(手册中“一个字元”何解???)

TOP

strpos判断一个字符串的首字符为特定字符时,不能用if(strpost($str,$find)) {} 因为在php里false == 0 返回true,我目前解决的一个办法是: if((string)strpos($forward, 'http://') == '0' or (string)strpos($forward, '/') == '0') { ...... } else { ...... }

TOP

发新话题