我是一个完整的PHP新手,我只是在Drupal中做一些主题。只是想知道这是否可能:
e.g。
http://xxxxxxxxxx.com/conference-events
,给出:
<body id="conference-events" class="level1">
http://xxxxxxxxxx.com/conference-events/rooms-capacities
,给出:
<body id="conference-events" class="rooms-capacities level2">
http://xxxxxxxxxx.com/conference-events/rooms-capacities/bob
,给出:
<body id="conference-events" class="bob level3">
基本上我有ID /第一类的代码,但是有可能用php获取关卡吗?
一个。
答案 0 :(得分:4)
$uri = $_SERVER['REQUEST_URI'];
// For this example's sake
$uri = 'http://xxxxxxxxxx.com/conference-events/rooms-capacities';
$path = trim(parse_url($uri, PHP_URL_PATH), '/');
$level = count(explode('/', $path));
var_dump($level); // (int) 2
答案 1 :(得分:1)
如果我理解你,不要确切地知道,但似乎你正在寻找像这样的东西
$pathSegments = explode('/', $_SERVER['REQUEST_URI']);
$level = 'level' . count($segments);
答案 2 :(得分:1)
7回应并且所有人似乎都错过了这个在Drupal中的事实。 :)
在Drupal中,URl将转换为:
http://xxxxxxxxxx.com/?q=conference-events/rooms-capacities
使用mod_rewrite。
此外,Drupal已经删除了最终存在的尾部斜杠。所以你只需要:
<?php
$level = count(explode('/', $_GET['q'])); // request_path() in D7
var_dump($level); // (int) 2
?>
答案 3 :(得分:0)
当前URL以$ _SERVER ['REQUEST_URI']的形式呈现给PHP - 例如“/ conference-events / rooms-capacity / bob”。
您可以使用$x = explode('/', $_SERVER['REQUEST_URI']);
获取每个级别的项目数组。从那里,您可以count($x)
数组中的项目数。
答案 4 :(得分:0)
按/
拆分并计算获得的令牌数量。减去3以计算域名中的3 /。
所以:
$numLvl = count(preg_split("|/|", $url)) - 3;
答案 5 :(得分:0)
假设您已经重写了您的网址,并且可以通过$ _GET或其他内容访问每个级别的变量...
$levels = count($_GET);
只需根据自己的需要调整它。
答案 6 :(得分:0)
其他答案似乎缺少从URL的最后一段派生的类。 所以,要得到计数:
$level = count(explode('/', $_SERVER['REQUEST_URI']));
$page = trim(strrchr($_SERVER['REQUEST_URI'], "/"), "/");