我环顾四周,但我仍然不确定哪种功能可以做到这一点。
如果我有一个字符串
$str = 'These people came from some area in France';
以及出现在上述字符串中的这两个词。
$match1 = 'from'; $match2 = 'France';
如何检查这两个单词是否在 20 个字符以内?
是的。您可以使用函数mb_strpos。它找到字符串中第一次出现的位置。因此,如果您在两个字符串中都使用,您可以检查它们之间的差异是否为 20。
您可以使用正则表达式(解释)来做到这一点:
$str = 'These people came from some area in France';
$match1 = 'from';
$match2 = 'France';
$is = (bool)preg_match('/\b' . preg_quote($match1) . '\b.{1,20}\b' . preg_quote($match2) . '\b/i', $str);
var_dump($is); # $is variable will be TRUE if there is a match
演示。
Was already typing it, so I post it :-)
if(abs(strpos($str, $match1) - strpos($str, $match2)) <= 20) {
//within 20
}
Use abs()
if the order of appearance doesn't matter.