![]() |
подстановка переменных при чтении из файла
привет
в разных текстовых файлах храняться куски хмтлки, в зависимости от параметров вывожу тот или иной файл пример файла <tr> <td><a href="#" class="$str">тыры-пыры</a></td> <td></td> </tr> <tr> <td><a href="#" class="$cel">елы-палы</a></td> <td></td> </tr> т.е. меню, в зависимости в каком разделе сидит юзер у того и меняется класс,чтобы показать активный раздел переменные $str и т.п. формируются в скрипте,но когда читаю их из фаилй,то они воспринимаются как обычный текст,как заставить их принимать нужные значения? выводить все в самом скрипте,получается слишком большой код |
Код:
<style type='text/css'> |
если еще надо
Код:
my($file,$temp,@code); |
$html =~ s/([^\\])\$(\w+)/ $1 . ${$2} /ge;
Все конструкции $blabla будут заменятся на переменные из глобальной области видимости. Можно модифицировать, чтоб тока од определённой. |
Не понял, зачем ты заменяешь переменную вместе с предыдущим символом да ещё между ними зачем-то точку прописываешь?
|
Я думаю, что ты уже разобрался, но, на всякий случай, объясню.
s/blabla/blabla()/ge - это не просто замена, это замена с выполнением второй части. В жтом примере: blabla в переменной заменится на результат выполнения функции &blabla (при чём, на момент подстановки). А в моём примере если перед "$" стоит обратный слеш "\", замена не происходит. |
Вложений: 1
Глянь мою реализацию "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 | --> В общем просто :) |
2JPEG
Насчёт кода понял. Это я стормозил малясь. Но экспериментируя с этим кодом нашёл для себя непонятный момент: my $html = '<b>$foo</b>'; $foo = "bar"; $html =~ s/([^\\])\$(\w+)/ $1 . ${$2} /ge; print $html; Так работает. Если же $foo объявлять лексической переменной, ${$2} не даёт её значения. Почему? А насчёт твоего файла. Это как я понял встраивание кода perl в html? Если да, то скажи мне, наф это нужно? По-моему гораздо эффективней и практичнее когда код отделён от дизайна. |
Нужно это для разнообразия :)
А не работает, очевидно, потому, что лексическая переменная не имеет записи TYPEGLOB. |
Да, насчёт лексической переменной ты опять (http://www.flasher.ru/forum/showthre...183#post355755) прав ;)
|
| Часовой пояс GMT +4, время: 13:41. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.