我好好看看,我仍然不确定能做到这一点的功能是什么。
如果我有像
这样的字符串$str = 'These people came from some area in France';
这两个单词出现在上面的字符串中。
$match1 = 'from'; $match2 = 'France';
如何检查这两个单词是否在彼此的20个字符之内?
答案 0 :(得分:2)
是。您可以使用函数mb_strpos。它在字符串中找到第一次出现字符串的位置。因此,如果您在两个字符串中使用,则可以检查它们之间的差异是否为20。
答案 1 :(得分:2)
您可以使用正则表达式(explain)执行此操作:
$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
<强> Demo 强>
答案 2 :(得分:0)
已经输入了,所以我发布了: - )
if(abs(strpos($str, $match1) - strpos($str, $match2)) <= 20) {
//within 20
}
如果外观顺序无关紧要,请使用abs()
。