strpos() - 查找字符串首次出现的位置 - php 字符串函数
strpos()
(PHP 4, PHP 5, PHP 7)
查找字符串首次出现的位置
说明
strpos(string $haystack, mixed $needle[,int $offset= 0] ): int返回$needle在$haystack中首次出现的数字位置。
参数
$haystack在该字符串中进行查找。
$needle如果$needle不是一个字符串,那么它将被转换为整型并被视为字符的顺序值。
$offset如果提供了此参数,搜索会从字符串该字符数的起始位置开始统计。如果是负数,搜索会从字符串结尾指定字符数开始。
返回值
返回 needle 存在于$haystack字符串起始的位置(独立于 offset)。同时注意字符串位置是从0开始,而不是从1开始的。
如果没找到 needle,将返回FALSE
。
此函数可能返回布尔值FALSE
,但也可能返回等同于FALSE
的非布尔值。请阅读布尔类型章节以获取更多信息。应使用===运算符来测试此函数的返回值。
更新日志
版本 | 说明 |
---|---|
7.1.0 | 开始支持负数的$offset。 |
范例
使用===
注释
Note:此函数可安全用于二进制对象。
参见
stripos()
查找字符串首次出现的位置(不区分大小写)strrpos()
计算指定字符串在目标字符串中最后一次出现的位置strripos()
计算指定字符串在目标字符串中最后一次出现的位置(不区分大小写)strstr()
查找字符串的首次出现strpbrk()
在字符串中查找一组字符的任何一个字符substr()
返回字符串的子串preg_match()
执行匹配正则表达式
WARNING As strpos may return either FALSE (substring absent) or 0 (substring at start of string), strict versus loose equivalency operators must be used very carefully. To know that a substring is absent, you must use: === FALSE To know that a substring is present (in any position including 0), you can use either of: !== FALSE (recommended) > -1 (note: or greater than any negative number) To know that a substring is at the start of the string, you must use: === 0 To know that a substring is in any position other than the start, you can use any of: > 0 (recommended) != 0 (note: but not !== 0 which also equates to FALSE) != FALSE (disrecommended as highly confusing) Also note that you cannot compare a value of "" to the returned value of strpos. With a loose equivalence operator (== or !=) it will return results which don't distinguish between the substring's presence versus position. With a strict equivalence operator (=== or !==) it will always return false.
This is a function I wrote to find all occurrences of a string, using strpos recursively. This is how you use it:
It is interesting to be aware of the behavior when the treatment of strings with characters using different encodings. will output: Warning: strpos(): Empty needle in /in/lADCh on line 3 bool(false) bool(false) Warning: strpos(): Empty needle in /in/lADCh on line 7 bool(false) Note also that warning text may differ depending on php version, see https://3v4l.org/lADCh
when you want to know how much of substring occurrences, you'll use "substr_count". But, retrieve their positions, will be harder. So, you can do it by starting with the last occurrence : function strpos_r($haystack, $needle) { if(strlen($needle) > strlen($haystack)) trigger_error(sprintf("%s: length of argument 2 must be
鹏仔微信 15129739599 鹏仔QQ344225443 鹏仔前端 pjxi.com 共享博客 sharedbk.com
免责声明:我们致力于保护作者版权,注重分享,当前被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自自研大数据AI进行生成,内容摘自(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供学习参考,不准确地方联系删除处理!邮箱:344225443@qq.com)
图片声明:本站部分配图来自网络。本站只作为美观性配图使用,无任何非法侵犯第三方意图,一切解释权归图片著作权方,本站不承担任何责任。如有恶意碰瓷者,必当奉陪到底严惩不贷!
内容声明:本文中引用的各种信息及资料(包括但不限于文字、数据、图表及超链接等)均来源于该信息及资料的相关主体(包括但不限于公司、媒体、协会等机构)的官方网站或公开发表的信息。部分内容参考包括:(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供参考使用,不准确地方联系删除处理!本站为非盈利性质站点,本着为中国教育事业出一份力,发布内容不收取任何费用也不接任何广告!)