Я пытаюсь кодировать боковую панель для моего сайта. Для этого я храню пары значений, соответствующие ссылкам в файле, скажем 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
) в качестве аргумента. Все остальное работает отлично, кроме жирного текста. Помогите?
Постскриптум Когда я сказал 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']);
Как я знаю, 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];
Других решений пока нет …