不确定如何解决这个问题。
但是我需要检查我网址的一部分是否匹配。
问题在于它正在另一个网址中查找该部分字词而我不想要这个。
如果找到确切的单词,我只希望它能给出结果。
所以我有这个:
if (preg_match('@news?@i',$_SERVER['REQUEST_URI'])) {
// match
}
这为/news.php的URL提供了匹配,但如果URL为/newupdated,它也会给出匹配
任何帮助?
答案 0 :(得分:0)
使用parse_url代替正则表达式。 parse_url更可靠,允许您匹配只是您的路径。
<?php
$myURL = parse_url( $_SERVER['PATH_INFO'] );
if ($myURL['path'] == 'news.php') {
// Match
}
答案 1 :(得分:0)
您可能正在寻找word boundary anchor, \b
。像@\bfoo\b@
这样的模式将匹配foo
,但不匹配food
。
句点和斜杠充当单词分隔符:
php > var_dump(preg_match('@\bnews?\b@i', 'foo/newlyupdated.php'));
int(0)
php > var_dump(preg_match('@\bnews?\b@i', 'foo/news.php'));
int(1)
php > var_dump(preg_match('@\bnews?\b@i', 'foo/new.php'));
int(1)