【发布时间】:2011-04-21 21:42:09
【问题描述】:
if (strpos(htmlentities($storage->getMessage($i)),'chocolate'))
您好,我正在使用 gmail oauth 访问来查找电子邮件地址中的特定文本字符串。有没有办法比在上面的代码中使用 strpos 更快更有效地找到文本实例?我应该使用哈希技术吗?
【问题讨论】:
-
您必须将严格比较运算符与
strpos()函数一起使用。这是因为它可能会返回一个整数0,这意味着在字符串的开头找到了字符串'chocolate'。使用您拥有的声明,这将评估为FALSE。正确的是if (strpos(htmlentities($storage->getMessage($i)), 'chocolate') !== FALSE) -
你为什么使用
htmlentities()?它会减慢一切。 -
因为我也在搜索它是否在 html 中 - 如果我删除了 htmlentities 标签,是否会考虑链接 url?
-
例如:chocoloatefactory.com">Bob's Site - 如果我省略了 htmlentities,这还会返回 true 吗?
-
htmlentities 不会更改任何内容,只会更改引号等特定字符。最好确保它们也没有在您正在搜索的字符串中编码,并且在这种情况下不要使用该函数。对于您的示例字符串“巧克力”,实体没有区别。
标签: php string hash string-search