我的最新问题涉及尝试在变量中查找"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')) {
}