Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Архив Flasher.ru > Программирование > Perl

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему  
Старый 05.08.2003, 13:54
Timofey вне форума Посмотреть профиль Отправить личное сообщение для Timofey Найти все сообщения от Timofey
  № 1  
Timofey

Регистрация: 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 и т.п. формируются в скрипте,но когда читаю их из фаилй,то они воспринимаются как обычный текст,как заставить их принимать нужные значения?

выводить все в самом скрипте,получается слишком большой код

Старый 05.08.2003, 14:17
Armen Khanoyants вне форума Посмотреть профиль Отправить личное сообщение для Armen Khanoyants Посетить домашнюю страницу Armen Khanoyants Найти все сообщения от Armen Khanoyants
  № 2  
Armen Khanoyants
"inLove"
 
Аватар для Armen Khanoyants

Регистрация: 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>
попробуй так
__________________
[hayeren, es dzer tsav` tanem]
http://www.vonces.com


Последний раз редактировалось Armen Khanoyants; 05.08.2003 в 14:21.
Старый 19.09.2003, 13:19
wd_andrey вне форума Посмотреть профиль Отправить личное сообщение для wd_andrey Посетить домашнюю страницу wd_andrey Найти все сообщения от wd_andrey
  № 3  
wd_andrey
 
Аватар для wd_andrey

Регистрация: Dec 2000
Адрес: Киев
Сообщений: 19
Отправить сообщение для wd_andrey с помощью ICQ
По умолчанию если еще надо

Код:
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);

Старый 13.02.2004, 17:45
JPEG вне форума Посмотреть профиль Отправить личное сообщение для JPEG Найти все сообщения от JPEG
  № 4  
JPEG
 
Аватар для JPEG

Регистрация: Oct 2000
Адрес: Москва
Сообщений: 264
$html =~ s/([^\\])\$(\w+)/ $1 . ${$2} /ge;

Все конструкции $blabla будут заменятся на переменные из глобальной области видимости. Можно модифицировать, чтоб тока од определённой.
__________________
.pete

Старый 13.02.2004, 18:22
metton вне форума Посмотреть профиль Отправить личное сообщение для metton Посетить домашнюю страницу metton Найти все сообщения от metton
  № 5  
metton
"simple"
 
Аватар для metton

Регистрация: Feb 2002
Адрес: Россия, Москва
Сообщений: 1,155
Отправить сообщение для metton с помощью ICQ
Не понял, зачем ты заменяешь переменную вместе с предыдущим символом да ещё между ними зачем-то точку прописываешь?

Старый 13.02.2004, 20:35
JPEG вне форума Посмотреть профиль Отправить личное сообщение для JPEG Найти все сообщения от JPEG
  № 6  
JPEG
 
Аватар для JPEG

Регистрация: Oct 2000
Адрес: Москва
Сообщений: 264
Я думаю, что ты уже разобрался, но, на всякий случай, объясню.

s/blabla/blabla()/ge

- это не просто замена, это замена с выполнением второй части. В жтом примере: blabla в переменной заменится на результат выполнения функции &blabla (при чём, на момент подстановки).

А в моём примере если перед "$" стоит обратный слеш "\", замена не происходит.
__________________
.pete

Старый 13.02.2004, 20:44
JPEG вне форума Посмотреть профиль Отправить личное сообщение для JPEG Найти все сообщения от JPEG
  № 7  
JPEG
 
Аватар для JPEG

Регистрация: 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 | -->

В общем просто
Вложения
Тип файла: txt my_phtml.txt (3.5 Кб, 175 просмотров)
__________________
.pete


Последний раз редактировалось JPEG; 13.02.2004 в 20:49.
Старый 13.02.2004, 22:37
metton вне форума Посмотреть профиль Отправить личное сообщение для metton Посетить домашнюю страницу metton Найти все сообщения от metton
  № 8  
metton
"simple"
 
Аватар для metton

Регистрация: Feb 2002
Адрес: Россия, Москва
Сообщений: 1,155
Отправить сообщение для metton с помощью ICQ
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.
Старый 19.02.2004, 00:17
JPEG вне форума Посмотреть профиль Отправить личное сообщение для JPEG Найти все сообщения от JPEG
  № 9  
JPEG
 
Аватар для JPEG

Регистрация: Oct 2000
Адрес: Москва
Сообщений: 264
Нужно это для разнообразия

А не работает, очевидно, потому, что лексическая переменная не имеет записи TYPEGLOB.
__________________
.pete

Старый 19.02.2004, 16:34
metton вне форума Посмотреть профиль Отправить личное сообщение для metton Посетить домашнюю страницу metton Найти все сообщения от metton
  № 10  
metton
"simple"
 
Аватар для metton

Регистрация: Feb 2002
Адрес: Россия, Москва
Сообщений: 1,155
Отправить сообщение для metton с помощью ICQ
Да, насчёт лексической переменной ты опять (http://www.flasher.ru/forum/showthre...183#post355755) прав

Создать новую тему   Часовой пояс GMT +4, время: 22:42.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


Часовой пояс GMT +4, время: 22:42.


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.