我有这段代码:
<?php $url = JURI::getInstance()->toString();
if ($url == "http://example.com/news/latest/"){
echo "This is latest page";
} else {
echo "This is not latest page";
}
?>
我要做的不是“http://example.com/news/latest/”,而是如何选择/ latest /下的页面/项目。如果它更有意义,这是一个语法:
if ($url == "http://example.com/news/latest/" + ANYTHING UNDER THIS)
我不能使用不等于($ url!=)因为它将包含不等于/ latest /的其他父页面。我只想要它下面的东西。如果有人理解它,我需要有关如何将其放入代码的帮助。
更新 我想要做的是如果页面是example.com/news/latest,它将回显“最新”。例如,如果我在example.com/news/latest/subpage1/subpage2中,它将回显“您在最新的页面中”。超出“最新”的任何东西都会回应这一点。
答案 0 :(得分:0)
使用正则表达式:
$matches = array();
if((preg_match('#http://example\.com/news/latest/(.*)#', $url, $matches)) === 1) {
if(strlen($matches[0]) > 0) {
echo "You're at page: $matches[0]";
} else {
echo "You're at the root";
}
} else {
// Error, incorrect URL (should not happen)
}
编辑:已修复,未经测试,因此您可能需要稍微调整一下
答案 1 :(得分:0)
$str = 'example.com/news/latest/dfg';
preg_match('/example.com\/news\/([^\/]+)\/?(.*)/', $str, $page);
if(isset($page[2]) && $page[2])
echo 'You are under: ' , $page[1];
elseif(isset($page[1]))
echo 'At: ' , $page[1];
else
echo 'Error';
编辑:澄清后切换到正则表达式。