php字符串快速查找,php – strpos是在大量文本中搜索字符串的最快方法吗?

根据PHP手册,yes- strpos()是确定一个字符串是否包含另一个字符串的最快方法.

Note:

If you only want to determine if a particular needle occurs within haystack,

use the faster and less memory intensive function strpos() instead.

这是引用的时间和任何php.net文章关于其他字符串比较器(我从strstr()中拉出一个)

虽然你的声明应该有两个改变.

if (strpos($storage->getMessage($i),'chocolate') !== FALSE)

这是因为如果(0)计算为false(因此不运行),则如果针位于干草堆的最开始(位置0),则strpos()可返回0.此外,删除htmlentities()将使您的代码运行更快.所有这些htmlentities()都是用相应的HTML等价物替换某些字符.例如,它代替每个&与& amp; amp;

您可以想像,单独检查字符串中的每个字符,并替换其中的许多字符是非常内存和处理器.不仅如此,如果您打算进行文字比较,则不必要.例如,比较以下语句:

strpos('Billy & Sally', '&'); // 6

strpos('Billy & Sally', '&'); // 6

strpos('Billy & Sally', 'S'); // 8

strpos('Billy & Sally', 'S') // 12

或者,在更极端的情况下,甚至可能导致一些真实的评估为假.

strpos('

strpos('<img src...','

为了规避这个问题,你最终会使用更多的HTML实体.

strpos('<img src...', '<'); // 0

但是,你可以想象,这不仅是令人厌烦的代码,而且是多余的.你最好完全排除HTML实体.通常HTML实体仅在输出文本时使用.不比较

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值