strpos -- 找出字符串第一次出现的位置(从左到右查找) 不指定

jed , 2006-9-7 16:29 , 代码编程 , 评论(0) , 阅读(4020) , Via 本站原创 | |
strpos
(PHP 3, PHP 4, PHP 5)
strpos --  找出字符串第一次出现的位置(从左到右查找)
说明
int strpos ( string haystack, mixed needle [, int offset] )

传回参数 needle在字符串 haystack中第一次出现的位置,以数字表示。不像strrpos( ),此函数可以取参数 needle全部的字符串,而且会使用全部的字符串。
如果找不到参数 needle,则传回 false。参数 offset 可省略,用来表示从 offset 开始找。
语法
从开头到末尾查找字符串中指定字符
StrPos('源字符串','要查找的字符')
从指定开始处查找
StrPos('源字符串','要查找的字符',查找的开始位置)
警告
本函数可能返回布尔值 FALSE,但也可能返回一个与 FALSE 等值的非布尔值,例如 0 或者 ""。请参阅布尔类型章节以获取更多信息。应使用 === 运算符来测试本函数的返回值。


注: 该函数可安全用于二进制对象。
例子 1. strpos() examples
$mystring = 'abc';
$findme   = 'a';
$pos = strpos($mystring, $findme);
// Note our use of ===.  Simply == would not work as expected
// because the position of 'a' was the 0th (first) character.
if ($pos === false) {
   echo "The string '$findme' was not found in the string '$mystring'";
} else {
   echo "The string '$findme' was found in the string '$mystring'";
   echo " and exists at position $pos";
}
// We can search for the character, ignoring anything before the offset
$newstring = 'abcdef abcdef';
$pos = strpos($newstring, 'a', 1); // $pos = 7, not 0
?>  


如果参数 needle不是字符串时,它会转换成整数并且按照字符的顺序值来使用。
参数 offset允许你去指定在 haystack中从那一个字符开始搜寻,传回的位置依然是相对于 haystack的起点。
参见 strrpos(), stripos(), strripos(), strrchr(), substr(), stristr(), and strstr().
另:
可以用中文的。只不过按照常理的一个汉字占两个字母位……
例如:
$foo="这是一个例子,测试用。";
$num=strpos($foo,"个");
echo"$num";
?>
你看到的结果是6。为什么会这样?因为他是采用数组保存的(我猜应该是),所以是以"0"开头的。
也就是说,如果
$foo="this is a sample,just for test.";
$num=strpos($foo,"t");
结果将是0,对,没错。
所以使用该函数注意两点:
一,可以应用于中文(PHP中文手册说明有误);
二,他的计算方式。
如果想计算一个英文串中字符出现在第几个,$num++
如果是中文,$num=($num+1)/2(这个并不全对,还要考虑一下标点符号全角半角的问题,自己想想吧)
还要注意,不仅可以应用中文字,还可以应用中文字符传串(既然一个中文字可以,几个当然也可以了)。(手册中“一个字元”何解???)
发表评论

昵称

网址

电邮

打开HTML 打开UBB 打开表情 隐藏 记住我 [登入] [注册]