我目前正在设计一个使用它的网站:<li class="current">
.
我有一个脚本来检测它何时在所述页面上输出正确的类,但是,在图库.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>
你不能使用 $_SERVER['SCRIPT_NAME'] 或 $_SERVER['PHP_SELF']
或 $_SERVER['REQUEST_URI'] 以及 php 函数 strpos($haystack, $findme(?它应该让你的生活变得轻松。
http://php.net/manual/en/function.strpos.php
似乎
$_SERVER['PHP_SELF']
是你需要的,它返回相对文件名,没有参数。看看这里 : http://www.php.net/manual/en/reserved.variables.server.php
如果我理解您的问题,您正在尝试访问查询字符串值
试试echo $_GET['dir'];
编辑试过这个吗?
$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 ....
}
}
<?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>
如果URL是这样的:www.site.com/page.php?q=foo
那么这个
$currentpage = basename(__FILE__);
只会给你页面.php
此外,如果您这样称呼它:
$currentpage = basename(__FILE__,".php");
会给你页面
我很确定preg_match_all返回一个整数。如果这是完整的代码,它根本无法工作。是的,使用类似的东西 $_SERVER['PHP_SELF']
.此外,您还应该考虑使用一些更好的URL来避免这种情况。