首页 > 编程技术 > php

一个简单的PHP入门源程序

发布时间:2016-11-25 17:16

引用“星空浪子”php中文文档的例子:
聊天室,是 Web 站上打发无聊人士的秘密武器。同时,站长或其它人员也可以在这儿杀时间。甚至发生一段轰轰烈烈的网路恋情呢,就算没有,起码可以增加打字的速度。
聊天室,其实就是多人共同使用的 CGI 程式。程式将每个人输入的字串,依系统接收完成的时间整理过后,再送给各个使用者。而 Web 聊天室和 BBS 的聊天室不同的地方是 BBS 聊天室可以每收到一句话,就马上分送给每位在聊天室的网路使用者;Web 由于 CGI 程式不能像 BBS 的 telnet 一直连线,Web CGI 必须以最快的速度将资讯送出,然后结束连线。会形成这种情形,就是因为 Web 聊天室还是使用 HTTP 传输协定,在 HTTP 实作的版本,无论是 0.9、1.0 或是 1.1 版都不能长期占据网路连线的 Port。
为了解决资料无法马上传输的问题,及更新讯息的问题,Netscape 在 3.0 版浏览器之后使用了新的技术,而 Internet Explorer 也实作了这些 Netscape 研发出来的技术。Netscape 将它分成 Server Push 及 Client Pull 二种技术。Server Push 由 Web 伺服器将资料以多重 MIME 编码,送给使用者端,目前较少网站使用这种方式;而 Client Pull 则利用了 HTML 的 meta 标签,并利用 http-equiv="Refresh" 的属性,表示资料要重新载入,至于载入时间,则利用 content 属性来达成。
<meta> 标签通常都放在 <head>..</head> 的区段中,以便让浏览器可以仅早准备更新使用者端的网页。下面为 meta 和 PHP 合用的例子,设定为每十五秒重新载入一次。
<meta http-equiv="Refresh" content="15; url=<? echo $PHP_SELF; ?>">
如果不用 Server Push 或是 Client Pull 来做聊天室,是否有其它的方法,让 Web 的浏览器能聊天呢?答案是肯定的。可以使用 Java 或是 ActiveX (限 IE4、5) 来做甚至自行开发专属的 Browser Plug-in 程式 (如奇摩的聊天室),不过这就和 PHP 没有关系了,不是我们要的重点。
除此之外,由于定期更新所有网友的留言,为了怕写了一半因为 refresh 而被清掉尚未写好的字串,因此将聊天室以 frame 的页框技术来做是有必要的。下例就是聊天室的主程式。
<html>
<head>
<title>聊天室</title>
</head>
<frameset rows="*,40" border=1>
<frame" width=100% src="list.php" name=list scrolling=auto>
12. PHP资源
  你可以通过web上的众多资源更多的了解PHP3。许多邮件列表和书籍对你都非常有用。
12.1 站点
  PHP的爆炸性流行使得一夜之间出现了很多基于PHP的站点,其中不少站点有在线教程、范例代码、技巧和提示等内容。
国内
http://www.phpuser.com/ - PHP中文用户,也就是这里了
http://www.phpx.com/ - 中国PHP联盟
http://www.phpsite.net/ - PHP专门站
http://www.111cn.net/ - PHP CHINA
http://www.cpcw.com/netschool/homepage/cgi/ - 电脑报网页陶吧
国外
http://www.php.net/ - PHP官方站点
http://www.devshed.com/ - 极好的教程
http://%20px.sklar.com/ - 代码交换
http://phpuser.com/get_started/%20http://www.phpbuilder.com/ - 教程、专栏和邮件列表档案
http://phpuser.com/get_started/%20http://www.weberdev.com/ - 文章和代码
http://phpuser.com/get_started/%20http://www.phpwizard.net/ - 提示与技巧
http://%20www.iometrics.com/php/phplist.php3/ - IOMetrics scripts的档案
http://www.e-gineer.com/phpkb/ - PHP知识库
12.2 邮件列表
  你可以在PHP官方站点的"支持"栏目内登记获得以下的邮件列表。值得注意的是这些都是高流量流表,一般每天会有100份e-mail。
php3@lists.php.net - 主要的列表
php-dev@lists.php.net - 主要针对开发者
mailto:php-list-subscribe@exp.com.cn - 本站的邮件列表,与论坛相通
12.3 引人注目的工程
  一些基于PHP的工程已经发展得比较完善。其中一些更出色更引人注目的是:
http://phplib.netuse.de/ - PHPLib,一整套PHP函数库
http://www.phorum.org/ - Phorum是一个很完善的BBS系统
http://www.fishcartsql.org/ - FishCartSQL是一个电子商务解决方案
http://www.midgard-project.org/ - Midgard是一个网络应用开发平台

接上篇,继续硬着头皮往下翻。。。。:)
类型指示
在PHP5,你可以在一个类的方法中指明其参数必须为一个类的实例:
Example 10: 类型实例
<?php
class foo {
    // code ...
}
class bar {
    public function process_a_foo(foo $foo) {
     // Some code
    }
}
$b = new bar();
$f = new foo();
$b->process_a_foo($f);
?>
可以看到,在变量前指定一个类名,让PHP5知道这个变量将是一个类的实例
静态成员
静态成员和静态方法在OOP中一般称为"类变量"和"类方法"。
一个"类方法"可以在对象没有被实例化的时候调用
一个"类变量"可以在对象没有被实例化的时候访问(也不需要对象的方法来调用)
Example 11: 类变量和类方法
<?php
class calculator {
    static public $pi = 3.14151692;
    static public function add($x,$y) {
    return $x + $y;
    }
}
$s = calculator::$pi;
$result = calculator::add(3,7);
print("$result");
?>
* 异常处理
异常处理是开发语言中公认的处理异常错误的方法,如在JAVA和C++中。
PHP5用"try"和"catch"关键字来捕获异常。
Example 12: 异常处理
<?php
class foo {
    function divide($x,$y) {
    if($y==0) throw new Exception("cannot divide by zero");
    return $x/$y;
    }
}
$x = new foo();
try {
    $x->divide(3,0);     
} catch (Exception $e) {
    echo $e->getMessage();
    echo " <br /> ";
    // Some catastrophic measure here
}
?>
可以看出,"try"表示的是执行代码的地方,当有错误的时候执行"catch"区域的代码。
8. 投票系统
  在许多时候,我们需要收集上网者和网友们的意见。例如:新版页面与旧版页面的比较;对某一事情的看法;对体育比赛结果的预测等等。这时候,你需要一个非常有效的网上调查系统。使用PHP就可以非常方便地实现你的这一构想。
8.1 投票系统(mypolls.php3):
<?
$status=0;
if(isset($polled)&&($polled=="c-e")){
$status=1;
}
#echo "$status";
if(isset($poll)&&($status==0)){
setcookie("polled","c-e",time()+86400,"/");#time=24h
}
?>
<html>
<head>
<title>新版页面调查</title>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<style type="text/css">
<!--
.tb { border="1" bordercolor="#009933" cellspacing="0" font-size: 9pt; color: #000000}
.head { font-family: "宋体"; font-size: 12pt; font-weight: bold; color: #009933; text-decoration: none}
.pt9 { font-size: 9pt}
a.p9:link { font-size: 9pt; color: #000000; text-decoration: none}
a.p9:visited { font-size: 9pt; color: #000000; text-decoration: none }
a.p9:hover { font-size: 9pt; color: #FF0000; text-decoration: underline}
a.p9:active { font-size: 9pt; color: #FF0000; text-decoration: underline }
-->
</style>
</head>
<body bgcolor="#FFFFFF">
<div class="head">与旧版页面相比较您觉得新版页面:</div><br>
<?
if(!isset($submit)){
?>
<form action="myPolls.php3" method="get">
<input type="radio" name="poll_voteNr" value="1" checked >
<span class="pt9">信息量更大</span> <br>
<input type="radio" name="poll_voteNr" value="2" >
<span class="pt9">网页更精美</span> <br>
要做一个信息发布功能,可是各分类下的信息不统一,比如都有基本的元素无非:标题、发布时间、正文。而有的分类下信息可能一到四个字段,有的还要随文图片,有的还要文档内容等,也就是从表结构到HTML表单都可能不一样,问如何设计才好
一:只做成一个表,所有可能字段都考虑进去
二:做一个只包含基本字段的表,其它的多余字段用关联
三:还没想好
__________________
上士闻道,勤而行之;中士闻道,若存若亡;下士闻道,大笑之。不笑不足以为道。
“人生”就是——下课啦,放学啦,放假啦,毕业啦,混够啦,老啦,后悔啦,死啦!

标签:[!--infotagslink--]

您可能感兴趣的文章: