我希望你能帮助我,我有一个带有一些过滤词的数组:
$dang=array('foo','bar','baz','qux');
用户可以写一个文本,我在一个变量中得到它:
$answ=$_GET[answ];
如果用户写了一段文字,比如:"我喜欢这个卡巴莱,它太棒了。",我想打印这个:
Found: bar
"酒吧"出现在"卡巴莱"中(仅限首次出现)。
我在这里找到了这个函数在字符串中查找数组值的第一次出现
$firstMatch = array_shift(array_intersect(str_word_count(strtolower($answ), 1), $dang));
它是有效的,遗憾的是,它只找到单词(用空格分隔的文本)。
有什么方法可以做全文吗?
您可以使用foreach()
循环数组,并使用strpos()
检查字符串中是否存在值:
$string = "Hello world";
foreach ( $dang as $dong ) {
if ( strpos($string, $dong) !== false ) {
echo "Found: ".$dong;
}
}
如果未找到指针,则strpos()
返回false
,否则指针在干草堆中的起始位置(0是第一个字符)