PHP strpos - 只搜索完整的单词

PHP strpos - search only full words

如果我有一个包含单词 Company 的字符串并且我希望只搜索完整的单词,例如 any,我会遇到使用strpos()的一个问题,如下:

if (strpos($desc, $row['phrase']) !== false )
{
    // action
}

此脚本将 return TRUE,因为 Company 包含一个子字符串:any 这是无用的,因为脚本需要检测只有完整的单词。

公司上班

不包含单词:any

但是

是否有任何变化

确实包含单词:"any"。我如何编辑 strpos 函数以仅搜索完整单词,即不是其中的一部分?

谢谢。

试试这个正则表达式。

https://regex101.com/r/Evd3iF/1

$re = '/\b[Aa]ny\b/';
$str = 'Company any any. Any, ';

If(preg_match_all($re, $str, $matches, PREG_SET_ORDER, 0)){
        //string contains word
 }

// Print the entire match result
var_dump($matches);

可以用

$pattern = "/\b[" . strtoupper(Substr($word,0,1)) . strtolower(Substr($word,0,1)) . "]" . Substr($word,1);

请注意我在 phone 上写了这个答案,所以我可能在上面的模式中犯了错误