Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Perl: разработка для Web > Автоматизация Web


Автор: Dimson 24.10.2006, 17:25
Доброго времени суток!
В Perl я очень большой новичок. Поэтому, извините, проблемы соответствующие. Итак к сути проблемы:
Есть код:

Код

<html>
<head>
<!--start-->
<table>
 <tr bgcolor=#90A2C6  align="center" valign="middle" > 
    <td bgcolor=#90A2C6 colspan="5"><iframe frameborder="0" src="index.html" name="1" width=100% height="700"></iframe></td>
  </tr>
</table>
<!--stop-->
</body>
</html>


Иногда приходится менять содержимое между <!--start--> и <!--stop-->. Все это делается в ручную. До недавнего момента мня это устраивало, т.к. страничка была одна, но все поменялось когда их количество резко увеличилось -> потребовалась автоматизация.  smile 

Автор: JUmPER 25.10.2006, 08:56
читает из файла шаблона (напр. из того, который ты предоставил)
пишет в другой файл результат
Код

open(hTemplate,"<","template.html") or die "cant open template file\n".$@."\n";
open(hResult,">","result.html") or die "cant open result file\n".$@."\n";

my $state="out";
while(<hTemplate>) {
    if (/<!--start-->/ && $state eq "out") {
        $state="in";
        print hResult;
        }
    elsif (/<!--stop-->/ && $state eq "in") {
        $state="out";
        print hResult "new text here!\n";
        print hResult;
        }
    elsif ($state eq "out") {
        print hResult;
        }
    }

close(hResult);
close(hTemplate);


а если хочешь менять это "на лету" (т.е. непосредственно во время запроса), то лучше используй Template Toolkit или что-то подобное и не изобретай велосипед smile 

Автор: Zuzu 25.10.2006, 13:45
Можно попытаться воспользоваться технологией SSI, как вариант. ТОлько ИМХО, это слегка тяжелее, чем формирование страницы целиком. В скрипте разбирайся, что выводить. И как выводить. По любой технолонгии. Вручную, с помощью CGI, Template Toolkit, HTML::Template ...


Код

<html>

<head>
</head>

<body>
<!--start-->
<!--#include virtual="script.cgi" -->
<!--stop-->
</body>

</html>


script.cgi

Код

#!/usr/bin/perl

use CGI;

print header;

print <<'EO_HTML';
<table>
 <tr bgcolor=#90A2C6  align="center" valign="middle" > 
    <td bgcolor=#90A2C6 colspan="5"><iframe frameborder="0" src="index.html" name="1" width=100% height="700"></iframe></td>
  </tr>
</table>
EO_HTML

exit;



Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)