![]() |
Выделение цветом текущей новости на РНР
В общем что-то типа ленты новостей, автоматом прставляются ссылки, которые берутся из текстовых файлов. Как сделать так, чтоб переходя на новость, ссылка на которую перешли выделялась другим цветом? :молись:
Скрипт считки такой. <?php if (!isset($k)) { $k=1; } if (!isset($kkk)) { $kkk='new.txt'; } switch($k) { case '1': $ap=fopen('poz/'.$kkk,'r'); while($d=fgets($ap)) { $d=trim($d); $ap1=fopen('poz/'.$d,'r'); $p1=fgets($ap1); $p1=trim($p1); echo $p1; echo (fgets($ap1)."\r\n"); fclose($ap1); } fclose($ap); break; case '2': $ap1=fopen('poz/'.$fn1,'r'); $p1=fgets($ap1); $p1=trim($p1); echo $p1; $cc1=fgetss($ap1); } ?> poz-каталог new.txt - текстовый файл, в котором лежат номера других файлов (например: 1.txt 2.txt, А в них уже конкретные ссылки, которые и выводятся на экран. |
В таблицу стилей вписать что-то типа этого, с желаемым кодом цвета :
a:visited { color: #E34000; } |
Не, не то. Видимо, не так объяснила.
Есть три новости: (вход - это а хреф) Новость один "вход" (переход на страницу 1.php) Новость два "вход" (переход на страницу 2.php) Новость три "вход" (переход на страницу 3.php) На странице 1.рнр вот эта чать: Новость один "вход" Новость два "вход" Новость три "вход" сохраняется: так вот........ мне нужно, чтоб "Новость один "вход" " на странице 1.рнр выделялась другим цветом, т.е. чтобы людизнали, что они читают новость один. На странице 2.рнр новость два должна быть другим цветом ну и ты.ды. Так понятнее? Вверху я написала код, который считывает эти новости из текстовых файлов. Как мне задать коду, что страница, на которую перешли, является текущей и новость, дающая ссылку на эту страницу должна выделяться другим цветом? Хелп, плиз......ну я же знаю, что тут ничего сложного нет :молись: |
Цитата:
Вот а так в целом, нужно реализовывать так: у тебя есть адрес той новости, которую ты сейчас выводишь, или на которой странице ты находишься (это либо адресная строка браузера, либо то, что ты читаешь из файла), и у тебя есть список ссылок, которые отображаются в меню, просто тебе нужно сравнить ссылку в меню со своей текущей ссылкой и если они совпадают, то выделяешь эту ссылку как-нибудь (это и есть текущая новость) :) |
Так я это все понимаю.....я не понимаю как это на рнр написать. Как вот это написать: "сравнить ссылку в меню со своей текущей ссылкой"? Как можно ссылку в меню сравнить с текущей ссылкой?
Цитата:
|
Цитата:
Цитата:
|
Ыыыы...или я вас не понимаю или вы меня.
Есть такая фича "$_SERVER["PHP_SELF"]" И вот что я сделала: <?php if (!isset($k)) { $k=1; } if (!isset($kkk)) { $kkk='new.txt'; } switch($k) { case '1': $ap=fopen('poz/'.$kkk,'r'); while($d=fgets($ap)) { $d=trim($d); $ap1=fopen('poz/'.$d,'r'); $p1=fgets($ap1); $p1=trim($p1); // это мои коррективы !!! ------------ ereg("[A-Za-z0-9]{1,}\.php",$p1,$name); if ($name[0]==str_replace("/","",$_SERVER["PHP_SELF"])) { $begin='<font color=red>'; $end='</font>'; } else { $begin=''; $end=''; } echo $begin.$p1.$end; // это конец моим коррективам !!! -------------- echo (fgets($ap1)."\r\n"); fclose($ap1); } fclose($ap); break; case '2': $ap1=fopen('poz/'.$fn1,'r'); $p1=fgets($ap1); $p1=trim($p1); echo $p1; $cc1=fgetss($ap1); fclose($ap1); } ?> Но оно все-равно не работает :( |
А можно поподробнее, а лучше скинь на мейл файлики, посмотрим. Такое непонимание может возникнуть только из-за недостатка инфы.
Да и еще ты там строки вроде сравниваешь, == не катит насколько я знаю используй лучше strcmp. B gjxtve e nt,z 1.php, 2.php, 3.php .... Зачем столько файлов??? Лично я не разобрался))) |
Цитата:
Действительно очень сложно понять что подразумевается под конструкциями вида "if (!isset($k))", кто такой К, за что отвечает, откуда берется... Вобщем покажи файлик полностью, который так не дается, таогда можно будет уж смотреть... |
Цитата:
Цитата:
Кста, начет $k, хороший вопрос.....я вот тоже не понимаю, откуда она взялась и зачем она вообще тут нужна :biggrin: Вот как иногда полезно, что б чужими глазами взглянули на мною написанное. Видимо, я хотела что-то другое, но потом передумала :biggrin: Что бы я без вас делала! :rolleyes: |
Вернусь еще раз к своим баранам :молись:
Нужно сравнить ссылку с текущей страницей....если они равны, то ссылка должна быть выделена красным цветом. Сссылка берется из файла тхт. У меня не работает, т.е. при переходе по ссылкам цвет их не меняется. <?php if (!isset($kkk)) { $kkk='new.txt'; } $ap=fopen('poz/'.$kkk,'r'); while($d=fgets($ap)) { $d=trim($d); $ap1=fopen('poz/'.$d,'r'); $p1=fgets($ap1); ereg("[A-Za-z0-9]{1,}\.php",$p1,$lll); ereg("[A-Za-z0-9]{1,}\.php",$_SERVER["PHP_SELF"],$rrr); if ($lll[0]==$rrr[0]) { $begin='<font color=red>'; $end='</font>'; } else { $begin=''; $end=''; } echo $begin.$p1.$end; echo (fgets($ap1)."\r\n"); fclose($ap1); } fclose($ap); ?> Что я тут не того наваяла? |
вот тут
ereg("[A-Za-z0-9]{1,}\.php",$p1,$lll); тебе случайно не так надо? ereg("[A-Za-z0-9]{1,}\.php",$d,$lll); вообще, лучше всего пройти это все дебаггером или, на крайний случай, поставь вывод отладочной информации - чему у тебя перед if ($lll[0]==$rrr[0]) равны $lll[0], $rrr[0] и т.д. кроме того, неплохо было бы в вопросе привести пример содержания new.txt |
BorLase
спасибочки огромное, ща попробую. Привожу пример содеражния new.txt: 2.txt 1.txt а в файлах этих лежат сылки вот такого вида: <a href="7.php" target="_parent">С 8-м марта!</a> <br> Не-а.....нешта не подходит.....$d у меня получается не ссылка, а название фалов 1.txt 2.txt :( Я просто сама в этом уже так запуталась..... :молись: Я кажется разобралась......у меня в css файле прописан цвет ссылок.....может поэтому он не хочет их перекрывать? Так как если я делаю этот же скрипт, но ставлю допустим вместо $begin='<font color=red>' $begin='444444', то эти четверки появляются перед надписью на странице с текущей ссылкой. Тогда вопрос.....как перекрыть цвет ссылки, заданный css файлом? |
ммм... если мне не изменяет моя девичья память, проблема в следующем - несмотря на то, что ты меняешь цвет ВОКРУГ ссылки, сама ссылка определяется классом в CSS; потому-то у тебя ничего и не меняется
т.е. менять надо в этом месте: <a href="7.php" target="_parent">, а $begin-$end тебе не помогут но если эти ссылки в файле... как вариант, могу предложить такое: 1) делаешь два класса для ссылок - common и current 2) все ссылки в файлах пишешь в виде <a %s href="7.php" target="_parent"> 3) вместо $begin-$end делаешь так: PHP код:
|
BorLase
спасибочки! Я поняла мысль. Попробую сделать. Только непонятно, что значит %s в ссылке <a %s href="7.php" target="_parent">. Т.е. это что делает? А вообще, я решила эту проблему проще (иногда я все-таки не ищу трудных путей :biggrin: ), я сделала мини-гиф-картинки....типа полоски и текущую ссылку выделяю с двух сторон этими двумя картинками. Получилось даже красивше, чем цветом. |
Цитата:
в общем, man printf ;) |
| Часовой пояс GMT +4, время: 03:19. |
Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.