PHP-在变量中查找某些字符串
我的最新问题涉及在变量中查找“http://”。此变量包含客户端网站上评论部分的内容。我看到了各种各样的答案,但似乎都不管用。我在这里看了一些其他的帖子,我还没有得到最好的答案。以下是我到目前为止的情况:PHP-在变量中查找某些字符串,php,string,variables,Php,String,Variables,我的最新问题涉及在变量中查找“http://”。此变量包含客户端网站上评论部分的内容。我看到了各种各样的答案,但似乎都不管用。我在这里看了一些其他的帖子,我还没有得到最好的答案。以下是我到目前为止的情况: if(strpos($comments, 'http://') == true) { // Does stuff here } 我注意到其他人使用preg_match,有些人说是以数组的形式进行的。我感到困惑,选择太多了。只是开玩笑。不过,我希望得到一些澄清,任何建议都将不胜感激。您需要
if(strpos($comments, 'http://') == true) {
// Does stuff here
}
我注意到其他人使用preg_match,有些人说是以数组的形式进行的。我感到困惑,选择太多了。只是开玩笑。不过,我希望得到一些澄清,任何建议都将不胜感激。您需要说:
if(strpos($comments, 'http://') !== false) {
…因为如果http://
位于字符串的开头,它可以返回0(错误)
注意:这将只找到字符串中第一个出现的http://
仔细查看参考资料:您需要这样更改代码:
if(strpos($comments, 'http://') === false) {
//无链接
}
因为strpos返回的整数是字符串的位置
例如:
完整字符串:“http://stackoverflow.com “你好”
你会发现:“http”
它自然返回0
但是
完整字符串:“ahttp://stackoverflow.com"
你会发现:“http”
它返回1
所以您必须使用===运算符来检查是否真的为“boolean false”
如果您尝试使用==运算符进行检查,可能会失败,因为它将0设为false
更详细的信息:在那篇文章中,他们做了===而不是==,我将尝试一下。那么>=将搜索整个字符串吗?
strpos()
将搜索整个字符串,直到找到第一个指针或到达字符串的结尾。非常感谢,我将尝试一下,看看结果如何。我试图做的主要事情是阻止注释中的链接。实际上,str\u ireplace()
可能更符合您的需要。即使我不想替换http://,这种方法也可以吗?在大多数情况下,我会收到垃圾邮件评论,如“byfrgpvsipvtfok,habyqiupyh,[url=,habyqiupyh”,我希望在遇到http://时阻止表单提交。