0

我环顾四周,但我仍然不确定哪种功能可以做到这一点。

如果我有一个字符串

$str = 'These people came from some area in France';

以及出现在上述字符串中的这两个词。

$match1 = 'from'; $match2 = 'France';

如何检查这两个单词是否在 20 个字符以内?

4

3 回答 3

2

是的。您可以使用函数mb_strpos。它找到字符串中第一次出现的位置。因此,如果您在两个字符串中都使用,您可以检查它们之间的差异是否为 20。

于 2013-11-14T19:17:30.217 回答
2

您可以使用正则表达式(解释)来做到这一点:

$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

演示

于 2013-11-14T19:22:21.343 回答
0

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.

于 2013-11-14T19:19:30.710 回答