PHP - 将代码应用于子页面

时间:2013-08-30 08:16:14

标签: php joomla

我有这段代码:

<?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中,它将回显“您在最新的页面中”。超出“最新”的任何东西都会回应这一点。

2 个答案:

答案 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';

编辑:澄清后切换到正则表达式。