PHP strpos, strstr, strpbrk 这几个函数有什么区别

栏目: Python · 发布时间: 6年前

内容简介:确定一个字符串是否在另一个字符串中,在PHP中有很多方法实现。strstr — 查找字符串的首次出现,别名strchar

确定一个字符串是否在另一个字符串中,在 PHP 中有很多方法实现。 strpos,strstr,strpbrk 这几个函数都可以实现。那么这几个函数有什么不同呢?

strstr

strstr — 查找字符串的首次出现,别名strchar

PHP strpos, strstr, strpbrk 这几个函数有什么区别

返回 haystack 字符串从 needle 第一次出现的位置开始到 haystack 结尾的字符串。

如果$before_needle=true则返回第一次出现的位置前面的字符。如果字符不存在,则返回false。

如果needle不是一个字符串,那么它将被转化为整型并且作为字符的序号来使用。

PHP strpos, strstr, strpbrk 这几个函数有什么区别

strpos

查找字符串首次出现的位置。

PHP strpos, strstr, strpbrk 这几个函数有什么区别

返回 needle 在 haystack 中首次出现的数字位置。查询从offset开始。offset不影响输出的数值。只用于跳过不查询的字符串。

官方文档的Note中:

如果你仅仅想确定 needle 是否存在于 haystack 中,请使用速度更快、耗费内存更少的 strpos() 函数。

以下是strpos 的源码

PHP strpos, strstr, strpbrk 这几个函数有什么区别

对比两个函数的内部实现,除了offset之外,其实际差别在于strstr最后返回了字符串,strpos返回的是一个数。由于字符串返回的时候涉及到字符串复制的过程,因此会有速度和内存上的损耗。在性能上,strpos 会比strstr好一点点。

可以看一下网上的测试效果,测试效果地址

strpbrk

strpbrk — 在字符串中查找一组字符的任何一个字符。返回一个以找到的字符开始的子字符串。如果没有找到,则返回 FALSE。

PHP strpos, strstr, strpbrk 这几个函数有什么区别

strpbrk() 函数在 haystack 字符串中查找 char_list 中的字符。

PHP strpos, strstr, strpbrk 这几个函数有什么区别

相对于上面两个函数,strpbrk相对粗暴些,直接两个循环,实现字符的查找。在性能上,应该是这三个函数垫底的了。

总结

以字符串ABCGCAC为例。

strpos 返回的是完整匹配查询字符串的第一次出现位置。strpos('ABCGCAC','CA')返回结果是4。

strpbrk 返回的是字符列表中匹配的任意一个字符第一次出现之后的字符串。 strpbrk('ABCGCAC','CA') 返回的内容是ABCGCAC

strstr 返回的是完整匹配查询字符串第一次后出现后的字符串,strstr('ABCGCAC','CA') 返回结果CAC

道路千万条,性能优化第一条,一点点的提升也是提升,只需要选择函数的时候合理选择。


以上所述就是小编给大家介绍的《PHP strpos, strstr, strpbrk 这几个函数有什么区别》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

Landing Page Optimization

Landing Page Optimization

Tim Ash / Wiley Publishing / 2008-1-29 / USD 29.99

在线阅读本书 How much money are you losing because of poor landing page design? In this comprehensive, step-by-step guide, you’ll learn all the skills necessary to dramatically improve your bottom li......一起来看看 《Landing Page Optimization》 这本书的介绍吧!

JSON 在线解析
JSON 在线解析

在线 JSON 格式化工具

XML、JSON 在线转换
XML、JSON 在线转换

在线XML、JSON转换工具

XML 在线格式化
XML 在线格式化

在线 XML 格式化压缩工具