Forum Webscript.Ru

Программирование => Perl => Тема начата: koliama от 27 Августа 2004, 17:57:58

Название: Подскажите как сохранить html страницу формируемую с пом. CGI.pm на диск?
Отправлено: koliama от 27 Августа 2004, 17:57:58
Система freebsd, модуль cgi.pm - через него формируется страница, которая выводит результаты sql запроса в броузере... потребовалось сохранить эту страницу на диске. Подскажите как это можно сделать...?
Название: Подскажите как сохранить html страницу формируемую с пом. CGI.pm на диск?
Отправлено: NeoNox от 27 Августа 2004, 18:13:08
File->save page as
Название: Подскажите как сохранить html страницу формируемую с пом. CGI.pm на диск?
Отправлено: koliama от 27 Августа 2004, 18:25:15
уважаемый neonox - а можно поподробнее.. мне непонятен именно сам механизм - по идее ведь эта страница хранится в памяти? или я ошибаюсь...?
вообщем мне ваш ответ непонятен :(
Название: Подскажите как сохранить html страницу формируемую с пом. CGI.pm на диск?
Отправлено: NeoNox от 27 Августа 2004, 19:42:33
Уважаемый koliama, результат работы скрипта выводится в ваш броузер. Сохранить страницу можно нажав File в меню и выбрав из выпадающего меню save page as.
вообщем, каким боком ваш вопрос относится к perl мне не понятно.
Название: Подскажите как сохранить html страницу формируемую с пом. CGI.pm на диск?
Отправлено: koliama от 28 Августа 2004, 13:09:16
гм.. может я непонятно выразился. Требуется сохранить эту страницу на диске в html формате с помощью скрипта (т. е. в этом же скрипте вставить кусок кода, который бы выполнял данную операцию). так понятнее?
Название: Подскажите как сохранить html страницу формируемую с пом. CGI.pm на диск?
Отправлено: vladsu от 28 Августа 2004, 13:58:53
Т.е. нужно вывести и на экран в браузер, и в файл?

Так в чём проблема, распечатай страницу два раза, один раз в файл, один раз в STDOUT|браузер и все.


&print_html;

open (TOFILE, "> c:/test.html");
  select TOFILE;
  &print_html;
  select STDOUT;
close(TOFILE);



sub print_html {
    print "\\n";
    print "  \\n";
    print "    Lala\\n";
    print "  \\n";
    print "  \\n";
    print "    

TEST

\\n";
    print "  \\n";
    print "\\n";
}
Название: Подскажите как сохранить html страницу формируемую с пом. CGI.pm на диск?
Отправлено: koliama от 28 Августа 2004, 14:15:16
День добрый Влад. Ты как всегда выручаешь :)
А что означает select? (наверно глупый вопрос)
Название: Подскажите как сохранить html страницу формируемую с пом. CGI.pm на диск?
Отправлено: vladsu от 28 Августа 2004, 14:36:36
perldoc -f select
Название: Подскажите как сохранить html страницу формируемую с пом. CGI.pm на диск?
Отправлено: koliama от 28 Августа 2004, 14:38:29
действительно глупый :)
Название: Подскажите как сохранить html страницу формируемую с пом. CGI.pm на диск?
Отправлено: koliama от 28 Августа 2004, 14:47:12
Влад, еще вопрос по ходу возник... могу я вывод этой процедуры
print_html приаттачить в тело почтового сообщения напрямую, а не файлом, который я сохраняю?
Название: Подскажите как сохранить html страницу формируемую с пом. CGI.pm на диск?
Отправлено: vladsu от 28 Августа 2004, 15:09:54
Цитировать
koliama:
могу я вывод этой процедуры
print_html приаттачить в тело почтового сообщения напрямую, а не файлом, который я сохраняю?


Ясное дело.

Можно вывод этой процедуры закатать, например в массив, типа

my @web_page = &print_html;

тем самым избавиться от всяких "селектов". А что делать дальше, можно посмотреть тут (http://www.perl.ru/go.cgi?action=forum&board=relis&op=display&num=3590) массив @tmpl это и будет твой @web_page.
Название: Подскажите как сохранить html страницу формируемую с пом. CGI.pm на диск?
Отправлено: koliama от 28 Августа 2004, 15:24:58
Я хочу из скрипта передать почтовое сообщение постфиксу для отправки..
Что то вроде этого

sub send_mail
        {
                delete @ENV{qw(IFS CDPATH ENV BASH_ENV)};
                my $path = $ENV{\'PATH\'} = \'/usr/local/sbin\'
                my($to, $from, $subject, @body) = @_;
                my $postfix = "/usr/local/sbin/postfix"
                open(MAIL, "|$postfix") || die "Error! Coud\'t open postfix";
                print MAIL<                From: $from
                To: $to
                Subject: $subject
                END_HEADER
                foreach (@body)
                        {
                                print MAIL "$_\\n";
                        }
                close(MAIL);
        }
Так получиться?
Название: Подскажите как сохранить html страницу формируемую с пом. CGI.pm на диск?
Отправлено: koliama от 28 Августа 2004, 16:03:33
vladsu
Ты в асе появляешься?
Название: Подскажите как сохранить html страницу формируемую с пом. CGI.pm на диск?
Отправлено: commander от 30 Августа 2004, 18:23:30
koliama
Вот пристал к человеку...
Цитировать
open(MAIL, "|$postfix") || die "Error! Coud\'t open postfix";

позапрошлый век...
хотябы это...
perldoc MIME::Lite

дальше так:
...................
........................
my $msg = MIME::Lite->new(
                 To      =>$mail,
                 Subject =>\'\',
                 Type    =>\'multipart/related\'
                 );
        $msg->attach(Type => \'text/html\',
                 Data => qq{
                                  @body
                                 }
                            );
        $msg->send();