首页 > 代码库 > PHP程序设计基础

PHP程序设计基础

CGI的基本概念

PHP的简单程序

 

 

CGI的基本概念

HTML用户虽然可以通过表单将数据发送到Web服务器,但是HTML无法与数据库交互。这就需要在HTML网页与数据库之间架设一个沟通的渠道,这就是通用网关接口(Common Gateway Interface,CGI)。它也是万维网动态网页机制之一。CGI是外部扩展应用程序(例如Perl编写的Perl脚本语言)与Web服务器交互的一种通用的接口标准。按照CGI标准编写的外部扩展应用程序可以处理客户端浏览器输入(例如表单方式)的需要协同工作的数据,并将相应的处理结果给浏览器。从而完成客户端与服务器的交互操作,大大扩展了Web提供的功能。

 

PHP的简单程序

将该程序存放在apache根目录下的greeting.php文件中

 1 <html> 2 <head> 3 <title>The First Greeting from PHP </title> 4 </head> 5 <body> 6 <? 7 echo "hello,$name\n"; 8 ?> 9 </body>10 </html>

打开浏览器,在地址栏输入http://localhost/greeting.php?name=Cheng,回车。从IE中查看源文件的PHP输出,可以看到6-8行变为"hello,Cheng"。

PHP网页除了需要Web服务器和浏览器的参与外,还需要经过CGI模块处理才能显示(本例中用的是Aache的PHP解释模块);PHP网页的程序参数(或变量)可以从地址栏附在网页的URL一起输入,如网址后附带的"?name=Cheng",等号左边是变量名,右侧的是变量值,当需要输入的数据项多于一项时,数据项之间要用"&"号隔开。

<1>将PHP程序嵌入网页的方法:

<?echo("这是第一个PHP语言的嵌入例子\n");?>规范形式<?phpecho("这是第二个PHP语言的嵌入例子\n");?>

<2>PHP中引用文件的方法

a,require("MyRequiredFile.php");

该函数一般放在PHP程序的最前面,PHP程序在执行前,就会先读入require语句所指定引入的文件,使它变成PHP网页的一部分。用此方法可将常用的函数引入网页中

b,include("MyRequiredFile.php");

该函数一般放在流程控制中。PHP程序网页在读到include语句时,才将相关的文件读进来。这样可把流程处理程序简化,增强可读性

<3>PHP的注释: 可用"//"或"/* */"

 

PHP的常量,变量和数据类型

说明:PHP是一种弱类型的程序语言,即一个变量可以存储任意类型的数据;

定义或分配简单的数据类型(标量或数组),第一次使用变量名就相当于定义它;

PHP中的变量名区分大小写,不能以数字字符开始。

<1>PHP基本数据类型

布尔型:它的值可以为TURE或FALSE。这些情况也被认为是FALSE:0,0.0,"0",空白字符串(""),只声明没有赋值的数组等。  

整数:$integer=100;//十进制    $integer=0666;//八进制   $integer=0x888;//十六进制

浮点型(float/double):   $php=1.2;   $php=1.0E3;//科学计数    $php=7e-6;

字符串:可给字符串加单引号,双引号

<2>内置环境变量和常量

__ FILE__,执行中的PHP程序文件名__LINE __,执行中PHP程序行数PHP_VISION,PHP程序的版本PHP_OS,执行PHP的操作系统名称TRUE,真值FALSE,假值E_ERROR,指向最近的错误处

 所有以E_开头形式的常量,可以参考PHP手册中,error_reporting()函数

自定义所需的常量:define("PI", "3.14");  echo PI; 

<3>PHP变量类型

标量:用来记录单个信息,一次保存四种基本数据类型中的一种

数组:存储数值的列表

$arr_names[]=‘Jack‘;  $arr_names[]=‘Tom‘; //arr_names第一次使用,这两个元素的下标分别为0,1

$arr_animal[‘panda‘]=‘rare animal‘;  或$arr_animal=array(‘panda‘=>‘rare animal‘ , ‘dog‘=>‘home animal‘);  //用于数组下标的字符串须用单引号括起来,且不能有空格

$arr_mixed=array(2,54,?Jack?=>‘the first name‘,‘application‘);    //混合下标,数组下标分别为0、1、‘Jack‘和2

多维数组:

$arr_books=array(‘book1‘=>array(‘name‘=>‘The New History‘ , ‘pages‘ => 400) , ‘book2‘=>array(‘name‘=>‘Children of the Mind‘ , ‘pages‘=>500));

echo $arr_books[‘book1‘][‘pages‘];

$arr_books[‘book1‘][‘author‘]=‘Orson Scott Card‘;  //多维数组随时都可以加入需要的元素

对象:存储变量信息和函数

资源变量:用来保存了对外部资源的引用所得到得结果

 

PHP运算符和函数

<1>字符串的连接符:$a="hello"; echo $a.‘,‘.‘world‘.‘<br>‘;

算术运算符,赋值运算符:$a+=5; $b="我"; $b.="们"; //$b="我们";

逻辑运算符:&&  ||  !

区地址运算符:$a表示一个标量,&$a表示实际存储标量$a的地址

三元运算符:(expr1)? (expr2): (expr3);

三种语言结构:顺序,分支,循环,switch(expr)

<2>PHP函数分为两类:有返回值的函数和无返回值的函数,相当于Pascal中的函数(function)和过程(procedure),两者的区别在于是否有return

函数的定义:function func_name (参数列表)  { 函数功能 }  //其返回值可以是个标量或数组

按值调用和按址调用:

<?  //按值调用function add1($value) {$value++;}$a = 2;add1($a);echo "$a<br>";  //$a=2?><?   //按址调用function add2(&$value) {$value++;}$a = 2;add2($a);echo "$a<br>";  //$a=3?>

 

PHP函数

 

PHP网页参数传递

<1>$_POST[‘表单控件名‘]

$_GET[‘参数名‘]

应用举例:(与前文中的表单标记对应)

//wp2.php<html><body><?php//显示函数function echo_message($u_type){$u_type = $_POST[$u_type];if( $u_type == "我的建议是:") $u_type = "";if( $u_type == "") $u_type="(空)";echo "<font color=red>".$u_type."</font>";}//显示擅长语言函数function echo_lang(){$lang = $_POST[language];$j = count($lang);for($i=0;$i<$j;$i++){    echo "<font color=red>".$lang[$i]."</font>&nbsp;";}}?>姓名:<?php echo_message(‘myname‘);?><br>用户名:<?php echo_message(‘user‘);?><br>性别:<?php echo_message(‘gender‘);?><br>血型:<?php echo_message(‘bloodtype‘);?><br>擅长语言:<?php echo_lang();?><br>最擅长操作系统:<?php echo_message(‘OS‘);?><br>上传的文件:<?php echo_message(‘upload‘);?><br>建议:<?php echo_message(‘advice‘);?><br><button>确认</button></body></html>

 

 

<2>SESSION会话的使用

session_start()开始一个会话或者返回已经存在的会话

$_SESSION[‘xxx‘]=xxx  :注册SESSION全局变量。和GET,POST,COOKIE的使用方法相似,具体使用如下:

<?php  //w1.phpsession_start();  //使用SESSION前必须调用该函数。$_SESSION[‘name‘]="我是黑旋风李逵!";  //注册一个SESSION变量$_SESSION[‘passwd‘]="mynameislikui";$_SESSION[‘time‘]=time();echo "<br /><a href=http://www.mamicode.com/‘w2.php‘>通过COOKIE传递SESSION"; //如果客户端支持cookie,可通过该链接传递session到下一页。echo "<br /><a href=http://www.mamicode.com/‘w2.php?" . SID ."‘>通过URL传递SESSION</a>";//客户端不支持cookie时,使用该办法传递session.?><?php //w2.phpsession_start();echo $_SESSION[‘name‘]."<br>";echo $_SESSION[‘passwd‘]."<br>";echo date(‘Y m d H:i:s‘,$_SESSION[‘time‘])."<br>";echo "<br /><a href=http://www.mamicode.com/‘w1.php‘>返回上一页";?>

 session_id() :用于设定或取得当前session_id,php5也可以通过附加在url上的SID取得当前会话的session_id和session_name。若session_id()有具体指定值,则取代当前的session_id值。使用前先启动会话session_start()

isset($_SESSION[‘xxx‘] :检查session是否存在

session_regenerate_id() :更改session_id,成功返回true,失败返回false。使用该函数可以为当前session更改session_id,但不改变当前session的其他信息

session_name() :返回当前session的name或改变当前session的name。若要改变当前session的name,必须在session_start()之前调用该函数。注意:session_name不能只由数字组成,它至少包含一个字母。

unset ($_SESSION[‘xxx‘]) :删除单个session

unset($_SESSION) :此函数千万不可使用,它会将全局变量$_SESSION销毁,而且还没有可行的办法将其恢复。用户也不再可以注册$_SESSION变量。

$_SESSION=array() 删除多个session

<?phpsession_start();$old_sessionid = session_id();session_regenerate_id();$new_sessionid = session_id();echo "原始 SessionID: $old_sessionid<br />";echo "新的 SessionID: $new_sessionid<br />";echo"<pre>";print_r($_SESSION);echo"</pre>";?>结果是:原始 SessionID: 2a218c061f4964ee0d0209ebc70a4f8e新的 SessionID: 0f34199b49e7cbc8804387b5a61d21d8Array(    [name] => 我是黑旋风李逵!    [passwd] => mynameislikui    [time] => 1417957843)

 

PHP程序设计基础