PHP - 在变量中查找某些字符串

时间:2012-06-06 19:17:31

标签: php string variables

我的最新一期涉及尝试在变量中找到“http://”。此变量包含客户端网站上的注释部分的内容。我已经看到了各种各样的答案,但它们似乎都没有用。我在这里看了几个其他的帖子,我还没有得到最好的答案。以下是我到目前为止的情况:

if(strpos($comments, 'http://') == true) {
  // Does stuff here
}

我注意到其他人使用preg_match,有些人说要在数组中执行。我很困惑,选择太多了。开玩笑。我想澄清一下,任何建议都会非常感激。

2 个答案:

答案 0 :(得分:8)

你需要说:

if(strpos($comments, 'http://') !== false) {

...因为如果http://位于字符串的开头,它可以返回0(这是假的)。

注意:这只会在字符串中找到http://的第一个匹配项。

仔细查看参考资料:http://php.net/manual/en/function.strpos.php

答案 1 :(得分:3)

您需要更改代码:

if(strpos($comments, 'http://') === false) {

//没有链接 }

因为strpos返回整数,它是你的字符串的位置。

实施例: 完整的字符串:“http://stackoverflow.com你好” 你发现:“http”

当然它会返回0.

但是 完整字符串:“ahttp://stackoverflow.com” 你发现:“http”

它返回1.

所以你必须使用===运算符检查是否真的'布尔错误'。

如果您尝试使用==运算符进行检查,则可能会因为0为false而失败。

更多细节:http://php.net/strpos