返回列表 回复 发帖

[转帖]如何将CGI的运行结果嵌入网页中

    我们知道CGI程序与网页(html文件)之间是一种输入与输出的关系,即网页起着数据输入的作用,而CGI程序则起着对数据的处理(运算)和将结果送回浏览器端的作用。通常的情况是用CGI程序产生一个html页面将输出结果(数据)置于此页面中,送到浏览器中显示出来。那末是否可以在现有的网页上将CGI运算后的数据嵌入到其中呢?回答是肯定的,通常有以下几种方法。
一,用print"docuwent. write('............');";语句嵌入:要用这种方法在编写CGI程序时将要输出的结果加入以下代码:print"docuwent. write('............');";本站用的计数器就是采用这种方式,原代码如下:print "document.write('总访问量:<font color=red>'+$count+'</font><br>当前在线:<font color=red>'+$online+'</font>人<br>今天访问量:<font color=red>'+$a+'</font>');"; 这种方式适合于以纯文本方式输出结果的结果。
二,用html语句嵌入:我们可利用<IFRAME...........></IFRAME> 这一html语句在网页中嵌入CGI程序运行后所输出的结果,这时CGI程序运行结果将在<IFRAME>与</IFRAME>之间显示出来, 这种方式操作起来简单容易,也不需要在编写CGI程序时插入额外的代码,如果CGI程序输出的结果是图文并茂则用这种方式较好,本站的“文章更新”就是用这种方法。代码如下:<IFRAME frameborder="0" leftmargin="0" marginheight="0" marginwidth="0" scrolling="no" src="http://gzdzw.51.net/cgi-bin/notice.cgi?id=data" topmargin="0" width="400"></IFRAME>。
三,模板方式:这种方式是用html代码先制作好一页面称模板页面,在制作这个页面时在要显示输出结果(如输出结果$text="广州电子技术网")的地方用“$xxxxx”字符串表示,如$textw,CGI程序运行时先将模板页面以行的方式读入系统内定变量$_,并将模板中的字符串$textw用输出结果$text取代它,然后用print $_;语句输出即可。其实这种方法与由CGI程序产生一个html页面差不多,好处是在编写程序时可少写了产生html页面的代码,使CGI程序的尺寸大大减少并且使调试输出界面方便快捷。如要求较复杂的输出界面时,用此种方法是最好的,下面是用此方法的一段程序范例:
#!/usr/bin/perl
print "Content-type: text/html\n\n;
$htmlpath="c:/gzdzw/cgi-bin";#模板文件路径
$text="广州电子技术网";
open(FILE,"$htmlpath/index.html");#打开模板文件,模板文件为index.html(已先制作好,必须含有字符串textw)
while (<FILE>){#此循环是以行方式将模板文件读入内定变量$_.
s/\$textw/$text/g;#将模板中的字符串$textw用变量$text取代。
print $_;#输出结果:此时原模板中含字串$textw的地方将显示:广州电子技术网。
}
close(FILES);#关闭模板文件
exit;#程序运行结束

                     我是一个呼吸着现在的空气而生活在过去的人
               这样的注定孤独,孤独的身处闹市却犹如置身于荒漠
                                     我已习惯了孤独,爱上孤独
                                 他让我看清了自我,还原了自我
                             让我再静静的沉思中得到快乐和满足
                                   再孤独的世界里我一遍又一遍
                                   不厌其烦的改写着自己的过去
                                             延伸到现在与未来
                                       然而那只是泡沫般的美梦
                                 产生的时刻又伴随着破灭的到来
                         在灰飞烟灭的瞬间我看到的是过程的美丽
                                      而不是结果的悲哀。。。
返回列表