如何实现把perl程序嵌入.html中?

王释之 2000-09-04 02:57:00
有下面这个例子:
我把数据库中的东西取出在magazine.pl中,然后把她嵌入到magazine.html中,
如:
magazine.html=logo + magazine.pl + contact + img 等
请问如何实现?
谢谢!
...全文
428 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
王释之 2000-09-07
  • 打赏
  • 举报
回复
能给出列子吗?
谢谢!
shines77 2000-09-07
  • 打赏
  • 举报
回复
scud和iamcloud说得都很对,用标识替换法就可以了 <!--ChangeHere-->, 此方法还是很爽的。
shines77 2000-09-07
  • 打赏
  • 举报
回复
#!/usr/bin/perl
############################
@querys = split(/&/, $ENV{'QUERY_STRING'});
foreach $query (@querys) {
($name, $value) = split(/=/, $query);
$FORM{$name} = $value;
}

if ($FORM{'url'}) {
$url = "$FORM{'url'}";
$url =~ s/\&x//g;
$url =~ s/\+/ /g;
$url =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;
$url =~ s/~!/ ~!/g;
$url =~ s/\%2F/\//g;
&checkempty($url,"未指定url");
}
else {
&error("未指定url");
}

if ($FORM{'file'}) {
$file = "$FORM{'file'}";
$file =~ s/\&x//g;
$file =~ s/\+/ /g;
$file =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;
$file =~ s/~!/ ~!/g;
$file =~ s/\%2F/\//g;
&checkempty($file,"未指定file");
}
else {
&error("未指定file");
}

if ($FORM{'mark'}) {
$mark = "$FORM{'mark'}";
$mark =~ s/\&x//g;
$mark =~ s/\+/ /g;
$mark =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;
$mark =~ s/~!/ ~!/g;
$mark =~ s/\%2F/\//g;
&checkempty($mark,"未指定mark");
}
else {
&error("未指定mark");
}

print "Location: $url\n\n";

open(MAIN,"$file");
@main = <MAIN>;
close(MAIN);

$check=0;
open(MAIN,">$file");
foreach (@main) {
if ($_ =~ /<!--$mark-->(.*)<!--$mark-->/) {
$clickcount=$1+1;
$check=1;
$_ =~ s/<!--$mark-->(.*)<!--$mark-->/<!--$mark-->$clickcount<!--$mark-->/g;
}
print (MAIN "$_");
}
close(MAIN);

if ($ckeck==0) {
&error("无法发现mark");
}
exit 0;

########
sub checkempty {
$checkvalue = $_[0];
$checkerror = $_[1];
$checkvalue =~ s/<br>//g;
$checkvalue =~ s/\n//g;
$checkvalue =~ s/ //g;
if ($checkvalue eq "") {
&error($checkerror);
}
}

########
sub error {
print "Content-type: text/html\n\n";
print "<html><head><title>错误</title></head>\n";
print "<body bgcolor=ffffff text=007700>\n";
print "<center><h2>\n";
print "错误:$_[0]\n";
print "</h2></center></body></html>\n";
exit 0;
}

本perl是把xxxx.dat中的"<!--smz-->2699<!--smz-->"替换,注意"$_ =~ s/<!--$mark-->(.*)<!--$mark-->/<!--$mark-->$clickcount<!--$mark-->/g;"一段,这只是个例子,看你的领悟能力了。
iamcloud 2000-09-06
  • 打赏
  • 举报
回复
ssi是一种方式,要看服务器支持与否,方法是在开始<!--#exec cgi="magazine.pl"-->
或者是建立好magazine.html文件,需要用数据库数据的地方采用一些特殊的标识,比方<!--NAME-->代表数据库中的名字字段数据,然后在magazine.pl中打开magazine.html文件,将要替换的字串替换输出。eg: ~s/\<!--NAME--\>/数据库字段/;
以上如有不明白,你寄我信箱问好了
王释之 2000-09-06
  • 打赏
  • 举报
回复
如果magazine.html很复杂,用程序都很费劲的.
请问如何具体操作?
scud 2000-09-05
  • 打赏
  • 举报
回复
用程序读出magazine.html,嵌入(可以在magazine.html里放一个特殊标志或者符号),替换标志或符号,输出就可以了亚
iamcloud 2000-09-05
  • 打赏
  • 举报
回复
用ssi

2,204

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 CGI
社区管理员
  • CGI社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧