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


PHP - Find certain strings in a variable

我的最新问题涉及尝试在变量中查找"http://"。 此变量包含客户端网站上评论部分的内容。 我见过各种各样的答案,但似乎都没有奏效。 我在这里查看了其他一些帖子,但我还没有得到最好的答案。 这是我到目前为止所拥有的:

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

我注意到其他人使用preg_match,有些人说在数组中这样做。 我感到困惑,选择太多了。 开玩笑。 不过,我希望得到一些澄清,任何建议将不胜感激。

你需要说:

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

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

注意:这只会找到字符串中第一次出现的http://

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

您需要像这样更改代码:

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

/无链接}

因为 strpos 返回整数,这是定位您的字符串。

例:完整字符串:"http://stackoverflow.com 你好"您发现:"http"

自然它返回 0。

但完整字符串:"ahttp://stackoverflow.com"您发现:"http"

它返回 1。

所以你必须使用 === 运算符来检查是否真的是"布尔假"。

如果您尝试使用 == 运算符进行检查,您可能会失败,因为它将 0 视为假。

更多详细信息:http://php.net/strpos

我发现这是一个更好的匹配:(由phpstorm IDE推荐)

if(str_contains($e, '1062 Duplicate entry')) {
            
}