学院首页>网络编程>JSP>动态网页技术介绍—ASP、JSP、CGI、PHP

动态网页技术介绍—ASP、JSP、CGI、PHP

作者: 来源: 添加时间:2006-5-21 20:53:57
程序中第一个注释行具有特殊的含义,它是UNIX系统中shell的一条指令,表示在命令行上运行其后的命令。第一行是必需的,/usr/bin/perl提供了Perl解释器的完整路径名。例中的井号(#)为Perl语言中的注释字符。P erl技术参考站点:http://www.perl.com。 

CGI调用数据库需要安装DBI----DataBase Interface,即数据库接口技术。DBI提供了基于Perl的标准界面连接到各种不同的SQL引擎上。各种数据库的DBI模块可在此找到:http://www.perl.com/CPAN-local/modules/by-module/DBI/。以下是连接ORACLE数据库的一个例子: 

use DBI; #调用DBI; 
#以下三项是数据库名,调用数据库的用户名,密码;
$dbname="dbi:Oracle:DBName";
$user="user";
$pass="pass"; 
#联系数据库;
$dbh=DBI->connect($dbname,$user,$pss) || die "Error Connecting to database \n"; #数据库查询;
$tag=$dbh->prepare("SELECT * FROM 表名");
$tag->execute; #执行查询;
die "Error:$DBI::err\n" if DBI::err; #出错判断;
my($col1,$col2); #定义只在本程序中(用my来表示)有效的两个变量;
while(($col1,$col2)=$tag->fetchrow) {
print "Column 1:$col1\n";
print "Column 2:$col2\n";
}
$dbh->disconnect or warn "Disconnection failed \n"; #断开与数据库的连接;  CGI技术已经发展的很成熟了,功能强大,例如SINA,NETEASE,SOHU等网站的搜索引擎,用的就是CGI技术。
---------------------------------------------------------------------------

PHP--Hypertext Preprocessor(超文本预处理器),是一种易于学习和使用的服务器端脚本语言,是生成动态网页的工具之一。它是嵌入HTML文件的一种脚本语言。其语法大部分是从C,JAVA,PERL语言中借来,并形成了自己的独有风格;目标是让WEB程序员快速的开发出动态的网页。它是当今INTERNET上最为火热的脚本语言,只需要很少的编程知识你就能使用PHP建立一个真正交互的WEB站点。
PHP是完全免费的,可以不受限制的获得源码,甚至可以从中加进你自己需要的特色。PHP在大多数Unix平台,GUN/Linux和微软Windows平台上均可以运行。PHP的官方网站是:http://www.php.net。 

与ASP、JSP一样,PHP也可以结合HTML语言共同使用;它与HTML语言具有非常好的兼容性,使用者可以直接在脚本代码中加入HTML标签,或者在HTML标签中加入脚本代码从而更好的实现页面控制,提供更加丰富的功能。

PHP的优点有:安装方便学习过程简单;数据库连接方便,兼容性强;扩展性强;可以进行面向对象编程。引用Nissan的Xterra的话来说就是PHP可以做到你想让它做到的一切而且无所不能! 

PHP提供了标准的数据库接口,几乎可以连接所有的数据库;尤其和MYSQL数据库的配合更是“天衣无缝”。下面引用一个调用MYSQL数据库并分页显示的例子来加深对PHP的了解。

<?
$pagesize = 5; //每页显示5条记录
$host="localhost";
$user="user";
$password="psw"; 
$dbname="book"; //所查询的库表名;
//连接MySQL数据库
mysql_connect("$host","$user","$password") or die("无法连接MySQL数据库服务器!"); $db = mysql_select_db("$dbname") or die("无法连接数据库!");$sql = "select count(*) as total from pagetest";//生成查询记录数的SQL语句
$rst = mysql_query($sql) or die("无法执行SQL语句:$sql !"); //查询记录数
$row = mysql_fetch_array($rst) or die("没有更多的记录!"); /取出一条记录
$rowcount = $row["total"];//取出记录数
mysql_free_result($rst) or die("无法释放result资源!"); //释放result资源$pagecount = bcdiv($rowcount+$pagesize-1,$pagesize,0);//算出总共有几页if(!isset($pageno)) {
$pageno = 1; //在没有设置pageno时,缺省为显示第1页
}
if($pageno<1) {
$pageno = 1; //若pageno比1小,则把它设置为1
}
if($pageno>$pagecount) {
$pageno = $pagecount; //若pageno比总共的页数大,则把它设置为最后一页
}
if($pageno>0) {
$href = eregi_replace("%2f","/",urlencode($PHP_SELF));//把$PHP_SELF转换为可以在URL上使用的字符串,这样的话就可以处理中文目录或中文文件名
if($pageno>1){//显示上一页的裢接
echo "<a href="" . $href . "?pageno=" . ($pageno-1) . "">上一页</a> ";
}
else{
echo "上一页 ";
}
for($i=1;$i<$pageno;$i++){
echo "<a href="" . $href . "?pageno=" . $i . "">" . $i . "</a> ";
}
echo $pageno . " ";
for($i++;$i<=$pagecount;$i++){
echo "<a href="" . $href . "?pageno=" . $i . "">" . $i . "</a> ";
}
if($pageno<$pagecount){//显示下一页的裢接
echo "<a href="" . $href . "?pageno=" . ($pageno+1) . "">下一页</a> ";
}
else{
echo "下一页 ";
}$offset = ($pageno-1) * $pagesize;//算出本页第一条记录在整个表中的位置(第一条记录为0)
$sql = "select * from pagetest LIMIT $offset,$pagesize";//生成查询本页数据的SQL语句
$rst = mysql_query($sql);//查询本页数据
$num_fields = mysql_num_fields($rst);//取得字段总数
$i = 0;
while($i<$num_fields){//取得所有字段的名字
$fields[$i] = mysql_field_name($rst,$i);//取得第i+1个字段的名字
$i++;
}
echo "<table border="1" cellspacing="0" cellpadding="0">";//开始输出表格
echo "<tr>";
reset($fields);
while(list(,$field_name)=each($fields)){//显示字段名称
echo "<th>$field_name</th>";
}
echo "</tr>";
while($row=mysql_fetch_array($rst)){//显示本页数据
echo "<tr>";
reset($fields);
while(list(,$field_name)=each($fields)){//显示每个字段的值
$field_value = $row[$field_name];
if($field_value==""){
echo "<td> </td>";
}
else{
echo "<td>$field_value</td>";
}
}
echo "</tr>";
}
echo "</table>";//表格输出结束
mysql_free_result($rst) or die("无法释放result资源!");//释放result资源
}
else{
echo "目前该表中没有任何数据!";
}mysql_close($server) or die("无法与服务器断开连接!");//断开连接并释放资源
?>
从这个例子可以看出,PHP的语法结构很象C语言,并易于掌握。而且PHP的跨平台特性让程序无论在WINDOWS平台还是LINUX、UNIX系统都能运行自如。笔者编写PHP程序是在WINNT4中,然后上传到UNIX系统运行,从未发现兼容性的问题。到目前为止,无论在个人网站还是在企业网站上,以上4种技术中以PHP的应用最为广泛。

以上4种技术,皆在制作动态网页上各显神通。至于选择哪种技术,取决于制作者的爱好和技术储备。对于广大个人主页的爱好者、制作者来说,笔者建议尽量少用难度较大、上手较慢的CGI技术。如果您是"微软"的拥趸,采用ASP技术会让您得心应手;如果是LINUX的追求者,运用PHP技术在目前是最恰当、最明智的选择。此外,不要忽略了JSP技术,据说它是未来最有发展前途的动态网站技术,但是在学JSP之前,必须掌握JAVA技术。
第 2 页,共 2 页 [1] [2]
站内搜索