Php 使用preg match返回true或false,而不是重复一个句子
我使用下面的方法来检查表单中的数据是否包含某些单词,但问题是,当它检查时,我一次又一次地得到“找到匹配项”或“未找到匹配项”。我怎样才能为发布的整个句子指定一个真值或假值?。然后我想添加这样的内容……如果为true,则转储此帖子,如果为false,则对其进行处理并将其放入数据库Php 使用preg match返回true或false,而不是重复一个句子,php,regex,foreach,preg-match,Php,Regex,Foreach,Preg Match,我使用下面的方法来检查表单中的数据是否包含某些单词,但问题是,当它检查时,我一次又一次地得到“找到匹配项”或“未找到匹配项”。我怎样才能为发布的整个句子指定一个真值或假值?。然后我想添加这样的内容……如果为true,则转储此帖子,如果为false,则对其进行处理并将其放入数据库 <?php $message = $_POST['message']; echo $message; $targets = array('viagra', 'prescriptio
<?php
$message = $_POST['message'];
echo $message;
$targets = array('viagra', 'prescription', 'drugs', 'zyban', 'zithromax', 'voltaren', 'cilias', 'FDA');
foreach($targets as $t)
{
if (preg_match("/\b" . $t . "\b/i", $message)) {
echo "A match was found.";
} else {
echo "A match was not found.";
}
}
?>
如果我做对了,你需要像这样设置一个停止值
<?php
function containsSpam($message) {
$targets = array('viagra', 'prescription', 'drugs', 'zyban', 'zithromax', 'voltaren', 'cilias', 'FDA');
$stop = false;
foreach($targets as $t)
{
if (preg_match("/\b" . $t . "\b/i", $message)) {
//A match was found.
$stop = true;
break;
}
}
//And you can then do something like this
if ($check) {
//Insert it
} else {
//Dump it
}
}
?>
preg\u match(“/\b”$t.\b/i“,$message)
它本身返回true或false。您应该添加一个中断代码>在找到停止字时停止循环谢谢,我正试图这样检查,但它一直返回true$结果=containsSpam($message);如果($result=true){echo'true';}否则{echo'false';}您应该使用=
进行比较,并使用=
进行赋值。在布尔值的情况下,如果($result)
就足够了。
function containsSpam($message) {
$targets = array('viagra', 'prescription', 'drugs', 'zyban', 'zithromax', 'voltaren', 'cilias', 'FDA');
foreach($targets as $t)
{
if (preg_match("/\b" . $t . "\b/i", $message)) {
//A match was found.
return true;
}
}
return false;
}