我目前正在设计一个使用此网站的网站:<li class="current">
。
我有一个脚本来检测它在所述页面上何时输出正确的类,但是,当它在gallery.php?dir = thedir页面时,它无法输出该类!
这是我到目前为止所做的,这是行不通的......
$ispage = preg_match_all('gallery.php/\[(.+?)\]/s');
我很感激有人可以给我的任何信息:)。
完整代码:
<?php
$ispage = preg_match_all('gallery.php/\[(.+?)\]/s');
$currentpage = $_SERVER['REQUEST_URI'];
if ($ispage==$currentpage) {
echo '<li class="current">';
} else {
echo '<li>';
}
?><a href="gallery.php">Photos</a></li>
答案 0 :(得分:1)
你不能使用$ _SERVER ['SCRIPT_NAME']或$ _SERVER ['PHP_SELF']或$ _SERVER ['REQUEST_URI']以及php函数strpos($ haystack,$ findme)吗?它应该让你的生活变得轻松。
答案 1 :(得分:0)
如果我理解了您的问题,那么您正尝试访问查询字符串值
尝试echo $_GET['dir'];
EDIT 试过这个?
$ispage = '/'.basename($_SERVER['PHP_SELF']).'?'.($_SERVER['QUERY_STRING']);
$curepage = $_SERVER['REQUEST_URI'];
我认为您需要定义一系列链接来解决您的问题
这样
$curpage = $_SERVER['REQUEST_URI'];
$links = array('/gallery.php?dir=thedir', '/home.php?dir=anotherdir');
foreach($links as $link) {
$class = '';
if($link == $curpage) {
$class = 'class="current"';
echo '<li '.$class.'>';
.... rest of the code ....
}
}
答案 2 :(得分:0)
似乎$_SERVER['PHP_SELF']
是你需要的,它返回相对文件名,没有参数。
看看这里:http://www.php.net/manual/en/reserved.variables.server.php
答案 3 :(得分:0)
我很确定preg_match_all返回一个int。如果这是完整的代码,它根本不起作用。是的,请使用类似$_SERVER['PHP_SELF']
的内容。你也应该考虑使用一些更好的网址来避免这种情况。
答案 4 :(得分:0)
<?php
$currentpage = $_SERVER['REQUEST_URI'];;
preg_match('/[^.]+\.[^.]+$/', $currentpage, $matches);
if ($matches[0] == "/gallery.php?dir=thedir") {
echo '<li class="current">';
} else {
echo '<li>';
}
?><a href="gallery.php">Photos</a></li>
答案 5 :(得分:0)
如果网址类似于: www.site.com/page.php?q=foo
然后这个
$currentpage = basename(__FILE__);
只会给你 page.php
此外,如果你这样称呼它:
$currentpage = basename(__FILE__,".php");
会为您提供页面