我正在尝试为我的网站编写侧边栏代码。为此,我存储了与文件中链接相对应的值对,比如names.txt:
Home-index.php
Coding-coding.php
然后我的php文件将获取这些值并将它们转换为侧面的链接,即
<a href = "index.php">Home</a>
<a href = "coding.php">Coding</a>
等等。现在,我想这样做,对于我所在的页面,它不会显示超链接,而是显示文本的粗体版本。 即如果我在index.php上,则输出
<strong>Home</strong>
<a href = "coding.php">Coding</a>
为此,我使用explode
从文件中分割我的字符串,然后使用PHP_SELF
来检测它是否是同一页面。
除此之外,由于脚本将位于不同的页面中,因此我将其放入文件(side.php)中,然后使用include('side.php')
。在side.php里面有侧边栏功能,它将页面目录(通过PHP_SELF
)作为参数。除了粗体文本外,其他所有工作都很好。帮助
P.S。当我说PHP_SELF
时我的意思是$_SERVER['PHP_SELF']
。
谢谢!
(我的代码,或其中的一部分......)
在side.php中:
<?php
function sidebar($input){
# echo ($input);
$sitenav = fopen("file","r");
$amts=0;
do{
$sidebarvals[$amts]=fgets($sitenav);
$amts=$amts+1;
}while ($sidebarvals[$amts-1]!="EOF");
$amts--;
for ($i=0;$i<$amts;$i++){
$parts = explode("-",$sidebarvals[$i]);
if ("/" . $parts[1]!=$input){
echo "<a href=" . $parts[1] .">" . $parts[0] . "</a>";
}else{
echo "<strong>" . $parts[0] . "</strong>";
}
echo "<br>";
}
fclose($sitenav);
}
?>
并在每页上:
include ('side.php'); sidebar($_SERVER['PHP_SELF']);
答案 0 :(得分:0)
据我所知,PHP_SELF返回带有完整文件路径的文件名,因为index.php将返回/index.php。但看起来你正在尝试将index.php与返回值/index.php匹配。 因此,为了纠正您必须从PHP_SELF获取文件名,并且可以通过这种方式实现。
$url_array = explode('/',$_SERVER['PHP_SELF']);
$last = count($url_array) - 1;
$file = url_array[$last];