·¢²©ÎÄ
Muddyboot

muddyboot.blog.chinaunix.net

Make Things Easy !   
¸öÈË×ÊÁÏ
  • ²©¿Í·ÃÎÊ£º393365
  • ²©ÎÄÊýÁ¿£º79
  • ²©¿Í»ý·Ö£º7274
  • ²©¿ÍµÈ¼¶£ºÉÙ½«
  • ×¢²áʱ¼ä£º2005-12-20 15:00:54
¶©ÔÄÎҵIJ©¿Í
  • ¶©ÔÄ
  • ¶©Ôĵ½Ïʹû
  • ¶©Ôĵ½×¥Ïº
  • ¶©Ôĵ½Google
×ÖÌå´óС£º´ó ÖРС²©ÎÄ
Perl/CGI Ä£°å (2006-01-22 21:31)
·ÖÀࣺ Perl Coding


ʹÓÃÄ£°å¼¼Êõ£¬¿ÉÒÔ´óÁ¿½ÚÊ¡´úÂëµÄ±àдÁ¿£¬Ìá¸ß´úÂëЧÂÊ£¬±ãÓÚµ÷ÊÔ¡£Ò»°ãÎÒÃǰѳ£ÓõÄHTML´úÂë·Åµ½ºó׺Ϊ¡°.html¡±µÄÎļþÖÐ×÷Ϊģ°å£¬²¢½« ÕâЩģ°åÎļþͳһ·ÅÔÚÃûΪ¡°templates/¡±µÄ×ÓĿ¼Ï¡£È»ºóÔÚËùдµÄPerl/CGI ³ÌÐòÖУ¬Ê¹ÓÃÕâЩHTMLÄ£°åÎļþ¡£)ÁíÍ⣬ÔÚÄã¸øÄ£°åÎļþÃüÃûʱ£¬¾¡Á¿È¡Ð©ÃèÊöÐÔÇ¿µÄÃû×Ö¡£Í¨³£µÄÃüÃû·½·¨ÊÇ£ºÏ»®ÏߺóÃæ½ô¸ú³ÌÐòÃû£¬Ä¿µÄÊÇÓÃÀ´Çø·Ö³£ ¹æµÄHTMLÎļþºÍHTMLÄ£°å¡£

Ò»¸öµäÐ͵ÄÀý×Ó£¬±ÈÈç _header.html£¬´æ·ÅÍøÒ³Í·µÄһЩ¹«¹²ÐÅÏ¢£»_footer.html ´æ·ÅÍøÒ³Î²²¿Ïà¹ØÐÅÏ¢¡£

### _header.html
Content-type:text/html

<!DOCTYPE HTML PUBLIC '-//W3C//DTD HTML 4.0 Transitional//EN'>
<html>
<head>
<meta http-equiv='Content-Type' content='text/html; charset=UTF-8'>
<title>$title</title>
<link rel='stylesheet' href='style.css'>
</head>
<body>

## _footer.html
</body>
</html>

ΪÁËÔÚPerlÀïÃæµ÷ÓÃÕâЩģ°å£¬ÎÒÃǽ«±àÖÆÒ»¸ö³ÆÎªTemplateµÄPerl×Ó³ÌÐò£¬³ÌÐò´úÂëÈçÏ£º

sub Template {
my $file;# file path
my $HTML;# HTML data

$file = $_[0] || die "Template : No template file specified.\n";
open(FILE, "<$file") || die "Template : Couldn't open $file : $!\n";
while (<FILE>) { $HTML .= $_; }
close(FILE);
$HTML =~ s/(\$\w+)/eval "$1"/ge;
return $HTML;
}

¸Ã³ÌÐòÖеĴ󲿷ÖÓï¾äºÜ¼òµ¥£¬ÎÒÃÇÖ»ÊÇ´ò¿ªÁËÒ»¸öÄ£°åÎļþ£¬°ÑÆäÄÚÈݶÁ³ö£¬²¢·µ»Ø¸ø³ÌÐò¡£ËùÓõļ¼ÇÉÊÇʹÓÃÁËÏÂÃæµÄÕýÔò±í´ïʽ£¬ËüÊÇÓÃÀ´ËÑË÷HTMLÄ£°åÖеÄPerl±äÁ¿£¬ (È磺$title) °Ñ±äÁ¿µÄֵȡ´úÆä·ûºÅ±íʾ¡£

ÍêÕûµÄ³ÌÐò´úÂëÈçÏ£º

#!/usr/bin/perl -w

use strict;
my $title = "Hello, world !";
print &Template("templates/_header.html");

<your body code here ...>

print &Template(templates/_footer.html");

============================================================================
[¸½: bash shell Ò²¿ÉÒÔŶ !]

function template () {
file=$1
[ -z "$file" ] && die "No template file specified."
eval echo -e "\"`cat $file`\""
}

#!/bin/sh

title="Hello, world !"
template "templates/_header.html"

<your body code here ...>

template "templates/_footer.html"

Ç×£¬Äú»¹Ã»ÓеǼ,Çë[µÇ¼]»ò[×¢²á]ºóÔÙ½øÐÐÆÀÂÛ