我正在尝试制作一个PHP脚本,该脚本检查un URL字符串是否与任何指向的单词相匹配。
所以这里是:
$yourWord='http://mywebsite.com/combo-points-carmaboy-boy';
$targets = array("kid", "kids", "boy", "six");
if (in_array($yourWord, $targets)) {
echo "FOUND!!";
}
else {
echo "NOT FOUND!";
}
在这种情况下,它给了我结果,NOT FOUND
但是如您所见,该词boy
包含在中combo-points-carmaboy-boy
。
那么我如何才能正确地找到字符串中的任何目标词呢?
谢谢!
您可以使用preg_match()
:
$pattern = '/('.implode('|', $targets).')/';
if (preg_match($pattern, $yourWord, $matches)) {
echo 'FOUND!!';
} else {
echo 'NOT FOUND!';
}
编辑:请注意,这将匹配整个URL(包括域)中的目标。如果只想匹配路径,则可以解析URL:
$path = parse_url($yourWord, PHP_URL_PATH);
然后,您可以在中使用此$path
变量preg_match()
:
if (preg_match($pattern, $path, $matches)) {
编辑2:正则表达式模式将以上两者匹配carmaboy
,并boy
在URL中。如果您不希望这样做,可以使用以下模式(它只会匹配boy
):
$pattern = '/\b('.implode('|', $targets).')\b/';
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句