Php 匹配URL链接并忽略后面的页面
我有这段代码,它将匹配url,然后做一些事情,它工作得很好,但是当url后面有一些页面时,比如/board/users/somename/repress/page/2/代码将无法工作。我怎样才能只检测url/board/users/somename/replies/的这一部分,而忽略后面的其余部分?谢谢你的帮助Php 匹配URL链接并忽略后面的页面,php,url,detect,Php,Url,Detect,我有这段代码,它将匹配url,然后做一些事情,它工作得很好,但是当url后面有一些页面时,比如/board/users/somename/repress/page/2/代码将无法工作。我怎样才能只检测url/board/users/somename/replies/的这一部分,而忽略后面的其余部分?谢谢你的帮助 $pageURL = $_SERVER['REQUEST_URI']; $myurl = '/board/users/somename/replies/'; if (strtolo
$pageURL = $_SERVER['REQUEST_URI'];
$myurl = '/board/users/somename/replies/';
if (strtolower($pageURL) == strtolower($myurl) ) {
echo "right";
}else{
echo "wrong";
}
只需尝试一个正则表达式 如果preg_匹配“/”.$myurl./”,$pageUrl{} 这将匹配任何包含$myurl的url。如果正则表达式匹配,preg_match返回1,如果不匹配,则返回0 如果要排除包含page/的URL,请尝试通过regex进行反向前瞻 如果preg_匹配“/?!”$myurl.'page\/'.$myurl./',$pageUrl{} 反向前瞻确保myurl/page/不在URL中,然后您只需匹配您的URL即可 编辑:有关preg_match的更多信息,请查看位于的php手册,您还可以使用php函数匹配字符串的长度。不区分大小写 试试这个:
$pageURL = $_SERVER['REQUEST_URI'];
$myurl = '/board/users/somename/replies/';
if (stristr($pageURL, $myurl) !== FALSE) {
echo "right";
} else {
echo "wrong";
}
我希望有帮助 只需匹配字符串的开头,如下所示:
if ( strpos(strtolower($pageURL), strtolower($myurl)) === 0 )
$pageURL = '/' . trim($_SERVER['REQUEST_URI'], '/');
$myurl = '/board/users/somename/replies';
您还必须确保前后斜杠匹配,因此我建议您修改代码的前两行,如下所示:
if ( strpos(strtolower($pageURL), strtolower($myurl)) === 0 )
$pageURL = '/' . trim($_SERVER['REQUEST_URI'], '/');
$myurl = '/board/users/somename/replies';
编辑:我把斜线弄错了。现在已修复。您需要使用常规表达式。谢谢,这很好,很好地确保了尾部斜杠。