|
|
« Предыдущая тема | Следующая тема » |
Опции темы | Опции просмотра |
|
|
|||||
Регистрация: Feb 2001
Сообщений: 127
|
подстановка переменных при чтении из файла
привет
в разных текстовых файлах храняться куски хмтлки, в зависимости от параметров вывожу тот или иной файл пример файла <tr> <td><a href="#" class="$str">тыры-пыры</a></td> <td></td> </tr> <tr> <td><a href="#" class="$cel">елы-палы</a></td> <td></td> </tr> т.е. меню, в зависимости в каком разделе сидит юзер у того и меняется класс,чтобы показать активный раздел переменные $str и т.п. формируются в скрипте,но когда читаю их из фаилй,то они воспринимаются как обычный текст,как заставить их принимать нужные значения? выводить все в самом скрипте,получается слишком большой код |
|
|||||
"inLove"
Регистрация: Feb 2001
Адрес: Moscow - Yerevan
Сообщений: 814
|
<style type='text/css'> .out:link {font-family: Arial, Helvetica; color: #0066fa; font-weight: normal; TEXT-DECORATION: none;} .in:link {font-family: Arial, Helvetica; color: #000000; font-weight: normal; TEXT-DECORATION: none;} </style> <a href="#" class="<?inrazdel==true?print("all"):print("out");?>">тыры-пыры</a> Последний раз редактировалось Armen Khanoyants; 05.08.2003 в 14:21. |
|
|||||
если еще надо
my($file,$temp,@code); $file="_путь к файлу с HTML кодом"; open(FILE,'<$file'); while(<FILE>){ $temp=<FILE>; if($temp=~/\$str/){ $temp=~s/\$str/_на значение переменной/; } ... и т. д. push @code,$temp; } close FILE; $file = join("\n",@code); #вот эта команда интерпритирует значение переменной как ПЕРЛ код. eval($file); |
|
|||||
Регистрация: Oct 2000
Адрес: Москва
Сообщений: 264
|
$html =~ s/([^\\])\$(\w+)/ $1 . ${$2} /ge;
Все конструкции $blabla будут заменятся на переменные из глобальной области видимости. Можно модифицировать, чтоб тока од определённой.
__________________
.pete |
|
|||||
"simple"
|
Не понял, зачем ты заменяешь переменную вместе с предыдущим символом да ещё между ними зачем-то точку прописываешь?
|
|
|||||
Регистрация: Oct 2000
Адрес: Москва
Сообщений: 264
|
Я думаю, что ты уже разобрался, но, на всякий случай, объясню.
s/blabla/blabla()/ge - это не просто замена, это замена с выполнением второй части. В жтом примере: blabla в переменной заменится на результат выполнения функции &blabla (при чём, на момент подстановки). А в моём примере если перед "$" стоит обратный слеш "\", замена не происходит.
__________________
.pete |
|
|||||
Регистрация: Oct 2000
Адрес: Москва
Сообщений: 264
|
Глянь мою реализацию "PerlHP" )))
Типа невинная попытка вдохнуть жизнь в Perl. Тут я себе ж*пу порвал. Но вроде не глючит. К Апачу добавляем: AddType application/x-httpd-perl_html .phtml Action application/x-httpd-perl_html /cgi-bin/phtml.cgi а в папку cgi-bin кидаем аттач к посту. Кому понравится - пишите о глюках. Пример скрипта: <HTML> <!--perl #любой пёрл-код while(1){ --> <br> <!--perl } --> Если нада свои заголовки: <!--perlinit print "Content-type: что-угодно"; и скока угодно --> в любом месте документа. Если нада инклюдить: <!--perlinclude main.phtml --> <!--perlinclude ls -l | --> В общем просто
__________________
.pete Последний раз редактировалось JPEG; 13.02.2004 в 20:49. |
|
|||||
"simple"
|
2JPEG
Насчёт кода понял. Это я стормозил малясь. Но экспериментируя с этим кодом нашёл для себя непонятный момент: my $html = '<b>$foo</b>'; $foo = "bar"; $html =~ s/([^\\])\$(\w+)/ $1 . ${$2} /ge; print $html; Так работает. Если же $foo объявлять лексической переменной, ${$2} не даёт её значения. Почему? А насчёт твоего файла. Это как я понял встраивание кода perl в html? Если да, то скажи мне, наф это нужно? По-моему гораздо эффективней и практичнее когда код отделён от дизайна. Последний раз редактировалось metton; 13.02.2004 в 22:39. |
|
|||||
Регистрация: Oct 2000
Адрес: Москва
Сообщений: 264
|
Нужно это для разнообразия
А не работает, очевидно, потому, что лексическая переменная не имеет записи TYPEGLOB.
__________________
.pete |
|
|||||
"simple"
|
Да, насчёт лексической переменной ты опять (http://www.flasher.ru/forum/showthre...183#post355755) прав
|
Часовой пояс GMT +4, время: 00:49. |
|
« Предыдущая тема | Следующая тема » |
|
|