目录
第一章 PHP开发基础
搭建环境
-
phpstudy组合包
- 组合包,就是将Apache、PHP、MySQL等服务器软件和工具安装配置完成后打包处理。开发人员只要将已配置的套件解压到本地硬盘中即可使用,无须再另行配置。
-
学会运行第一个PHP程序
-
<body> <?php echo "欢迎进入PHP的世界!!"; ?> </body>
-
第二章 PHP语言的基础语法
-
变量的定义
-
PHP中的变量名称用“$”和标识符表示,变量名是区分大小写的。变量赋值,是指给变量一个具体的数据值,对于字符串和数字类型的变量,可以通过“:”来实现赋值。
-
变量赋值是指赋予变量具体的数据,自从PHP 4.0开始,PHP不但可以对变量赋值,还可以对变量赋予一个变量地址,即引用赋值。定义并赋值PHP变量的语法格式如下所示:
-
<?php $name = value; ?>
-
命名规则:
- 在PHP中的变量名是区分大小写的。
- 变量名必须是以美元符号($)开始。
- 变量名开头可以以下划线开始。
- 变量名不能以数字字符开头。
- 变量名可以是中文。
- 变量名可以包含一些扩展字符(如重音拉丁字母),但不能包含非法扩展字符(如汉字字符和汉字字母)
-
-
变量作用域
- 局部变量:即在函数的内部定义的变量,其作用域是所在函数。
- 全局变量:即被定义在所有函数以外的变量,其作用域是整个PHP文件,但是在用户自定义函数内部是不可用的。要想在用户自定义函数内部使用全局变量,需要使用global关键词进行声明。
- 超级变量:PHP系统自带的变量,在任何位置都可用的特定数量的变量,并且可以从脚本的任何位置访问它们。($ _GLOBALS,$ _SERVER,$ _REQUEST,$ _POST,$ _GET,$ _FILES等)
-
常量
- 在PHP程序中,常量是指其值在程序的运行过程中不发生变化的量,常量值被定义后,在脚本的其他任何地方都不能改变。PHP常量的语法规则如下所示:
- 常量前面没有美元符号($)。
- 常量只能用 define()函数定义,而不能通过赋值语句。
- 常量可以不用理会变量范围的规则而在任何地方定义和访问。
- 常量一旦定义就不能被重新定义或者取消定义。
- 常量的值只能是标量。
- 在PHP程序中,常量是指其值在程序的运行过程中不发生变化的量,常量值被定义后,在脚本的其他任何地方都不能改变。PHP常量的语法规则如下所示:
-
布尔数据类型
-
布尔变量是PHP中最简单的,它保存了一个True或者False值。其中True或者False是PHP的内部关键字。设定一个布尔型的变量后,只需将True或者False赋值给该变量即可,并不区分大小写。
-
<?php $boo = true; if($boo == true) { echo '变量$boo为真!'; }else { echo '变量$boo为假!!'; } ?>
-
-
字符串数据类型
- 字符串是一个连续的字符序列,字符串中的每个字符只占用一个字节。在PHP程序中,有如下3种定义字符串的方式:
- 单引号方式。
- 双引号方式。
- Heredoc方式。
- 字符串是一个连续的字符序列,字符串中的每个字符只占用一个字节。在PHP程序中,有如下3种定义字符串的方式:
-
理解自增/自减运算符
-
掌握数据类型的转换
第三章 流程控制语句
-
if…else语句
-
<?php $a = 3; $b = 1; if($a < $b){ echo “a小于b”; }else{ echo “a不会小于b”; } ?>
-
-
switch语句
-
<?php ini_set('date.timezone','Asia/Shanghai'); switch (date("D")) { case "Mon": echo "今天星期一"; break; case "Tue": echo "今天星期二"; break; case "Wed": echo "今天星期三"; break; case "Thu": echo "今天星期四"; break; case "Fri": echo "今天星期五"; break; default: echo "今天放假"; break; } ?>
-
-
break
-
break语句可以跳出当前的循环,还可以指定跳出几层循环。
-
<?php //break语句的应用 $i=0; while(++$i){ switch($i){ case 3: echo "3跳出循环<br>"; break 1; //跳出循环 case 6: echo "6跳出循环<br>"; break 2; //跳出2层 default : break; } } ?>
-
-
continue
-
在PHP语言中,continue语句和路标一样,起到了一个标记功能。continue语句只能用于循环语句,遇到continue语句就表示不执行后面的语句,直接转到下一次循环的开始,俗称“半途而废,从头再来”,在PHP程序中,只有三个循环语句,换句话说,这个continue语句只能在continue语句下应用,其他的地方都不能用。
-
<?php for($k=0;$k<2;$k++){//First loop for($j=0;$j<2;$j++){//Second loop for($i=0;$i<4;$i++){//Third loop if($i>2) continue 2;echo "$i\n"; } } } ?>
-
-
return
-
在PHP程序中,如果在一个函数中调用 return()语句,将会立即结束此函数的执行并将它的参数作为函数的值返回,并且return()也会终止运行。如果在全局范围中调用return()语句,则当前脚本文件中止运行。
-
<?php function add($a,$b){ return $a+$b; return $a*$b; } $c = add(5,3);//得到的$c值可以用在程序的其他地方! echo $c; ?>
-
-
for循环嵌套
-
// 金字塔的99乘法表例子3-8 <?php echo '<div align="center">'; for($i=1;$i<=9;$i++) { echo '<table border="1" cellpadding="1" cellspacing="1" bordercolor="#FFFFFF" bgcolor="#666666">'; echo '<tr>'; for($j=1;$j<=$i;$j++) { echo '<td bgcolor="#FFFFFF">'.$i*$j.'</td>'; } echo '</tr>'; echo '</table>'; } echo '</div>'; ?>
-
第四章 函数
-
通过引用传递参数
-
在调用函数时需要向函数传递参数,被传入的参数称为实参,而在函数中定义的参数为形参。在PHP程序中,函数间参数传递的方式有按值传递、按引用传递和默认参数3种方式。
-
通过引用传递参数
-
<?php header(”content-type:text/html;charset=utf-8”); function add_some_extra(&$string,&$makeTree){ $string .= "加一个"; $makeTree[] = ""; } $str = "我很好,"; $makeTree = array(); add_some_extra($str,$makeTree); echo $str; var_dump($makeTree); ?>
-
-
按照默认值传递参数
-
<?php header(”content-type:text/html;charset=utf-8”); function makecoffee($type = "你去哪里呢?" ){ return "今天天气很好$type.\n"; } echo makecoffee(); echo makecoffee(",明天天气也很好"); ?>
-
-
使用非标量类型作为默认参数
-
<?php header(”content-type:text/html;charset=utf-8”); function makecoffee($types=array(”cappuccino”),$coffeeMaker=NULL){ $device = is_null($coffeeMaker)? ”hands”: $coffeeMaker; return "Making a cup of ".join(",",$types). "with $device.\n"; } echo makecoffee(); echo makecoffee(array("cappuccino", "lavazza"), "teapot"); ?>
-
-
函数返回值
-
<?php functoin square($num){ return $num * $num; } echo square(4); ?>
-
-
-
-
time()函数获取当前时间戳
-
PHP通过time()函数获取当前的UNIX时间戳,返回值为从UNIX纪元(格林威治时间1970年1月1日00:00:00)到当前时间的秒数。
语法格式如下:
int time(void) // 例子10-2 <?php default_time_zone("Asia/Shanghai"); $nextWeek = time()+(7*24*60*60); //7 days;24 hours;60 mins; 60 secs echo "Now:".date("Y-m-d")."</p>"; //输出当前日期 echo "Next Week:".date("Y-m-d",$nextWeek); //输出变量NextWeek的日期 ?>
-
-
strtotime()函数将日期和时间解析为时间戳
- strtotime()函数的功能:获取某个日期的时间戳,或获取某个时间的时间戳, strtotime可将任何英文文本的日期和时间解析为UNIX时间戳,其值是相对于参数now给出的时间,如果没有提供此参数now则用系统当前时间。
语法格式如下:
int strtotime(string time[,int now]) // 该函数有两个参数。如果参数time的格式是绝对时间,则now参数不起作用;如果参数time的格式是相对时间,那么其对应的时间就是参数now来提供的;如果没有提供参数now,对应的时间就为当前时间。如果解析失败返回false,如果解析成功则返回时间戳。 <?php date_default_timezone_set("Asia/Shanghai"); echo strtotime("now")."<br>"; //当前时间的时间戳 echo strtotime("2009-11-12")."<br>"; //输出指定日期时间戳 echo strtotime("2009-11-12 17:30:00")."<br>"; //输出指定时间时间戳 echo strtotime("21 May 2009")."<br>"; //输出指定日期的时间戳 echo strtotime("-1 day")."<br>"; //输出昨天此时的时间戳 echo date("Y-m-d H:i:s",strtotime("+1 week"))."<br>"; //输出下个星期此时的时间 //给当前时间加1周2天3小时4秒 echo date("Y-m-d H:i:s",strtotime("+1 week 2days 3hours 4seconds"))." <br>"; ?>
第五章 数组
// 实例5-1:声明并使用一维数组
<?php
$array=array(0=>"中",1=>"华",2=>"大",3=>"团",4=>"结");
print_r($array);echo "<br>";
echo $array[0];echo "<br>";
echo $array[1];echo "<br>";
echo $array[2];echo "<br>";
echo $array[3];echo "<br>";
echo $array[4];
?>
// 实例5-2:使用二维数组
<?php
$fruits = array (
"fruits" => array("a" => "orange", "b" => "banana", "c" => "apple"),
"numbers" => array(1, 2, 3, 4, 5, 6),
"holes" => array("first", 5 => "second", "third")
);
echo '<pre>';
print_r(array_values($fruits)); //array_value函数返回数组中所有值(不保留键名)
echo '<pre>';
?>
-
数字索引数组
- PHP数字索引一般表示数组元素在数组中的位置,它由数字组成,下标从0开始。数字索引数组的默认索引值从数字0开始,不需要特别指定,PHP会自动为索引数组的键名赋一个整数值,然后从这个值开始自动增量,当然也可以指定从某个位置开始保存数据。数组可以构造成一系列“键-值(key-value)”对,其中每一对都是数组的一个项目或元素(element)。对于数组中的每个项目,都有一个与之关联的键( key)或索引(index)相对应。
-
关联数组
- 在PHP程序中,关联数组的键名可以是数字和字符串混合的形式,而不像数字索引数组的键名只能为数字。在一个PHP数组中,只要在键名中有一个不是数字,那么这个数组就称为关联数组。关联数组( associative array)使用字符串索引(或键)来访问存储在数组中各元素的值,关联索引的数组对于数据库层交互非常有用。
-
删除数组中重复元素
// 在数组中经常会出现元素重合的问题,这时可以把多余的元素删除。在PHP程序中,可以使用函数 array_uniqueray_unique()的语法格式如下所示: array array_unique ( array array) ; <?php $a = array (1 => "苹果", "橘子","鸭梨", "a" => "橘子", "香蕉", "苹果") ; $b = array_unique ( $a ) ; print_r ( $a ) ; echo "<br>"; print_r ( $b ) ; ?>
-
删除数组中的元素或整个数组
// 在开发PHP程序过程中,经常需要删除数组变量中的某个元素以满足项目要求。通过使用函数unset()能够释放指定的变量,可以释放各种变量和数组的值,其语法格式如下: unset (mixed var [,mixed var [, ...]]) ; // 各个参数的具体说明如下所示。 // 第一个参数为要删除的变量名。 // 第二个参数为要指定删除的数组元素,可以删除单个变量和单个数组元素,也可以删除多个变量和多个数组元素。 // 实例5-6 删除数组中的元素 <?php $shucai = array ("番茄","萝卜","黄瓜"); //声明数组 print_r ($shucai ); echo "<br>"; unset ($shucai[1] ) ; //删除单个数组元素 print_r ( $shucai ) ; echo "<br>" ; foreach ($shucai as $i=>$value){ unset ($shucai[$i]) ; } //删除所有元素,但保持数组本身的结构 print_r ($shucai ); ?> //实例5-7 删除整个数组 <?php $shi = array ("苹果","橘子","葡萄") ; //声明数组 unset ( $shi ) ; //删除整个数组,释放数组变量 print_r ( $shi ) ; ?>
-
向数组结尾添加新元素
//在PHP程序中,有时需要向数组中添加新的数据元素,此时可以向数组中直接添加数据,数组键名将从0开始,以1递增。字符串键名将保持不变。PHP语言通过函数array_unshift()在数组的开头添加一个或多个元素,其语法格式如下所示: int array_unshift ( array &array, mixed var [,mixed ...]) ; // 实例5-8 向数组开头添加新元素 <?php $a=array("a"=>"red","b"=>"green"); array_unshift($a,"blue"); print_r($a); echo "<br>"; $a=array(0=>"red",1=>"green"); array_unshift($a,"blue"); print_r($a); echo "<br>"; ?> // 1.在数组末尾添加一个或多个元素。 // array_push() 将 array 当成一个栈,并将传入的变量压入 array 的末尾。array 的长度将根据入栈变量的数目增加。 // php代码实例: <?php $arr1 = array("a", "b"); array_push($arr1, "c", "d"); print_r($arr1); ?>
-
将字符串转换成数组
// 在PHP程序中,可以使用函数explode()将字符串转换成数组,此函数能够将字符串依指定的字符串或字符(separator)切开。具体语法格式如下: array explode(string separator, string string [,int limit]) // 实例5-12 将字符串转化成数组 <?php $str = "时装、体闲、职业装"; //定义一个字符串 $strs = explode("、", $str); //应用explode()函数将字符串转换成数组 print_r($strs); ?> // 1、首先新建一个PHP文档,并定义一个字符串,示例: $str = 'apple|banana|orange|carrot'; // 2、以"|"为分隔符,将字符串打散为数组,示例: $arr = explode('|',$str); // 3、使用print_r,将字符串转换之后的数组打印出来,示例: print_r($arr);
-
获取数组中的最后一个元素
// 在PHP程序中,通过函数array_pop()可以获取数组中的最后一个元素。此函数获取并返回数组的最后一个元素,并将数组的长度减1,如果数组为空(或者不是数组)则返回null。使 用函数array_pop()的语法格式如下所示: mixed array_pop(array array) // 实例5-13 获取数组中的最后一个元素 <?php $arr = array ("学习asp.net", "学习java", "学习javaweb"); //定义数组 $array = array_pop ($arr); //获取数组中最后一个元素 echo "被弹出的单元是:$array <br />"; //输出最后一个元素值 print_r($arr); ?>
-
统计数组元素
// 在PHP中,使用count()函数对数组中的元素个数进行统计。语法格式如下所示。 int count( mixed array [, int mode] ) // array:必须参数。输入的数组。 // mode:0-默认。不计算多为数组中的所有元素。1-递归地计算数组中元素的数目(计算多维数组中元素的数目) // 实例5-15 统计数组元素 <?php $array1 = array('张三','李四','a1'=>'王五','a2'=>'豆豆','杨杨','小花','a3'=>'小猪'); echo count($array1); ?>
第六章 字符串
-
trim()函数去除字符串首尾空格和特殊字符
<?php header("content-type:text/html;charset=utf-8"); $str = "\r\r(:@_@创图书编撰伟业展软件开发雄风@_@:) "; echo trim($str); echo "<br>"; echo trim($str,"\r\r(: :)"); ?>
-
ltrim()函数去除字符串左边空格和特殊字符
<?php header("content-type:text/html;charset=utf-8"); $str = " (:@_@ 创图书编撰伟业 @_@:) "; echo ltrim($str); echo "<br>"; echo ltrim($str," (:@_@:)"); echo "<br>"; ?>
-
rtrim()函数去除字符串右边空格和特殊字符
<?php header("content-type:text/html;charset=utf-8"); $str = " (:@_@ 展软件开发雄风 @_@:) "; echo rtrim($str); echo "<br>"; echo rtrim($str," :)@_@"); echo "<br>"; ?>
-
获取字符串的长度
// 获取字符串的长度使用的是strlen()函数,下面重点讲解strlen()函数的语法及其应用。 // strlen()函数主要用于获取指定字符串str的长度。 // 语法格式如下: int strlen(string str) <?php header("content-type:text/html;charset=utf-8"); echo strlen("网址www.bcty365.com"); ?> // 注意:utf-8编码,汉字占3个字符,gb2313编码汉字占2个字符,数字、英文、小数点、下划线和空格占一个字符。
-
strstr()函数查找指定的关键字
// 语法格式如下: string strstr(string haystack,string needle) // haystack:必要参数,指定从哪个字符串中进行搜索。 // needle:必要参数,指定搜索的对象。如果该参数是一个值,那么将搜索与这个数值的ASCII值相匹配的字符。 <?php header("content-type:text/html;charset=utf-8"); $picture_name = "goods.jpg"; echo strstr($picture_name,"."); ?>
-
strpos()函数查找字符串在另一字符串中第一次出现的位置
// 语法格式如下: strpos(string,find, start) // string:必需,规定要搜索的字符串。 // find: 必需,规定要查找的字符串。 // start: 可选,规定从何处开始搜索。 <?php header("content-type:text/html;charset=utf-8"); $newstring= 'adbcdefGh'; $pos = strpos($newstring,'d'); var_dump($pos); ?>
-
strrpos()函数查找字符串在另一字符串中最后一次出现的位置
// 语法格式如下: strrpos(string,find, start) // string:必需,规定要搜索的字符串。 // find: 必需,规定要查找的字符串。 // start: 可选,规定从何处开始搜索。 <?php header("content-type:text/html;charset=utf-8"); $mystring = "adbcdefGhjukgG"; $pos = strrpos($mystring,"d"); var_dump($pos); ?>
第七章 处理Web页面
-
使用POST()方法提交表单
- 应用POST方法时,只需将表单中的属性method设置成POST即可。POST方法不依赖于URL,不会显示在地址栏。POST方法可以没有限制地传递数据到服务器,所有提交的信息在后台传输,用户在浏览器端是看不到这一过程的,安全性高。所以POST方法比较适合用于发送一个保密的(如信用卡号)或者容量较大的数据到服务器。
-
使用GET()方法提交表单
-
GET方法是表单中method属性的默认方法。使用GET方法提交的表单数据被附加到URL后,并作为URL的一部分发送到服务器端。在程序的开发过程中,由于GET方法提交的数据是附加到URL上发送的,因此,在URL的地址栏中将会显示“URL+用户传递的参数”。
GET方法的传参格式如下:http://url?name1=value1&name2=value2……
其中,url为表单响应地址(如127.0.0.1/index.php),name1为表单元素的名称,value1为表单元素的值。url和表单元素之间用“?”隔开,而多个表单元素之间用“&”隔开,每个表单元素的格式都是name=value,固定不变。
-
-
$POST[]全局变量
// 使用PHP的$_POST[]预定义变量可以获取表单元素的值,格式为:$_POST[name]例如,建立一个表单,设置method属性为POST,添加一个文本框,命名为user,获取表单元素的代码如下: <?php $user=$_POST["user"]; //应用$_POST[]全局变量获取表单元素中文本框的值 ?>
-
$_GET[]全局变量
// PHP使用$_GET[]预定义变量获取通过GET方法传过来的值,使用格式为:$_GET[name] // 这样就可以直接使用名字为name的表单元素的值了。例如,建立一个表单,设置method属性为GET,添加一个文本框,命名为user,获取表单元素的代码如下: <?php $user=$_GET["user"]; //应用$_GET[]全局变量获取表单元素中文本框的值 ?>
-
获取文本框、密码域、隐藏域、按钮、文本域的值
- 获取表单数据,实际上就是获取不同的表单元素的数据。标签中的name是所有表单元素都具备的属性,即为这个表单元素的名称,在使用时需要使用name属性来获取相应的value属性值。
-
获取单选按钮的值
- radio(单选按钮)一般是成组出现的,具有相同的name值和不同的value值,在一组单选按钮中,同一时间只能有一个被选中。
-
获取复选框的值
-
复选框能够进行项目的多项选择。浏览者填写表单时,有时需要选择多个项目,例如,在线听歌中需要同时选取多个歌曲等,就会用到复选框。复选框一般都是多个同时存在,为了便于传值,name的名字可以是一个数组形式,格式为:
在返回页面可以使用count()函数计算数组的大小,结合for循环语句输出选择的复选框的值。
-
-
获取下拉列表框的值
- 获取下拉列表框的值的方法非常简单,与获取文本框的值类似,首先需要定义下拉列表框的name属性值,然后应用$_POST[]全局变量进行获取。
-
获取文件域的值
- 文件域的作用是实现文件或图片的上传
第八章 Cookie与Session
-
什么是Cookie
- Cookie是一种在远程浏览器端存储数据并以此来跟踪和识别用户的机制。简单地说,Cookie是Web服务器暂时存储在用户硬盘上的一个文本文件,并随后被Web浏览器读取。当用户再次访问Web网站时,网站通过读取Cookies文件记录这位访客的特定信息(如上次访问的位置、花费的时间、用户名和密码等),从而迅速作出响应,如在页面中不需要输入用户的ID和密码即可直接登录网站等。
-
创建Cookie
// 在PHP中通过setcookie()函数创建Cookie。语法格式如下: bool setcookie(string name[,string value[,int expire[, string path[,string domain[,int secure]]]]])
-
读取Cookie
- 在PHP中可以直接通过超级全局数组_COOKIE来读取浏览器的Cookie值
-
删除Cookie
-
删除cookie主要有两种方法:一种是使用setcookie()函数删除,另一种是在浏览器中手动删除cookie。
-
1.使用setcookie函数删除Cookie
删除Cookie和创建Cookie的方式基本类似,删除Cookie也使用setcookie()函数。删除Cookie只需要将setcookie()函数中的第二个参数设置为空值,将第3个参数Cookie的失效时间设置为小于系统的当前时间即可。
-
- 在浏览器中手动删除Cookie
启动IE浏览器,选择“工具”/“Internet选项”命令,打开“Internet选项”对话框,在“常规”选项卡中单击“删除Cookies”按钮,单击“确定”按钮,即可成功删除全部Cookie文件。
-
-
-
Cookie的生命周期
-
如果Cookie不设定失效时间,就表示它的生命周期为浏览器会话的期间,只要关闭IE浏览器,Cookie就会自动消失。这种Cookie被称为会话Cookie,一般不保存在硬盘上,而是保存在内存中。
如果设置了失效时间,那么浏览器会把Cookie保存在硬盘中,再次打开IE浏览器时会依然有效,直到它的有效期超时。
虽然Cookie可以长期保存在客户端浏览器中,但也不是一成不变的。因为浏览器最多允许存储300个Cookie文件,而且每个Cookie文件支持最大容量为4KB;每个域名最多支持20个Cookie,如果达到限制时,浏览器会自动地随机删除Cookie文件。
-
-
Session工作原理
- 当启动一个Session会话时,服务器端会生成一个随机且唯一的sessionid,也就是Session的文件名,此时sessionid存储在服务器的内存中,当关闭页面时此id会自动注销,重新登录此页面,会再次生成一个随机且唯一的sessionid。
- 服务器端将生成的session_id返回给客户端,通过set-cookie。
- 客户端收到sessionid会将它保存在cookie中,当客户端再次访问服务端时会带上这个sessionid。
- 当服务端再次接受到来自客户端的请求时,会先去检查是否存在sessionid,不存在就新建一个sessionid,重复1,2的流程,如果存在就去遍历服务端的session文件,找到与这个sessionid相对应的文件。文件中的键值便是sessionid,值为当前用户的一些信息。
- 此后的请求都会交换这个sessionid,进行有状态的会话。
-
启动会话
// 创建一个会话需要通过以下步骤: // 启动会话→注册会话→使用会话→删除会话 // 1.启动会话 // 通过session_start ()函数启动会话。语法格式如下: bool session_start(void) ;
-
注册会话
// 会话变量被启动后,全部保存在数组$_SESSION中。通过数组$_SESSION创建一个会话变量很容易,只要直接给该数组添加一个元素即可。 // 例如,启动会话,创建一个Session变量并赋予空值,代码如下: <?php session_start(); //启动Session $_SESSION["admin"] = null; //声明一个名为admin的变量,并赋空值 ?>
-
使用会话
// 首先需要判断会话变量是否有一个会话ID存在,如果不存在,就创建一个,并且使其能够通过全局数组$_SESSION进行访问。如果已经存在,则将这个已注册的会话变量载入以供用户使用。 // 例如,判断存储用户名的Session会话变量是否为空,如果不为空,则将该会话变量赋给$myvalue,代码如下: <?php if ( !empty ( $_SESSION['session_name'])) //判断用于存储用户名的Session会话变量是否为空 $myvalue = $_SESSION['session_name'] ; //将会话变量赋给一个变量$myvalue ?>
-
删除会话
-
删除会话的方法主要有删除单个会话、删除多个会话和结束当前会话3种,下面分别进行介绍。
-
(1)删除单个会话
删除会话变量,同数组的操作一样,直接注销$ _SESSION数组的某个元素即可。例如,注销$ _SESSION[‘user’]变量,可以使用unset()函数,代码如下?:unset ( $ _SESSION[‘user’] ) ;
注意:使用unset()函数时,要注意$ _SESSION数组中元素不能省略,即不可以一次注销整数数组,这样会禁止整个会话功能,如unset($ _SESSION)函数会将全局变量$ _SESSION销毁,而且没有办法将其恢复,用户也不能再注册$_SESSION变量。如果要删除多个会话,可以采用下面的两种方法
-
(2)删除多个会话
如果想要一次注销所有的会话变量,可以将一个空的数组赋值给$_SESSION,代码如下: $_SESSION = array() ;
-
(3)结束当前会话
如果整个会话已经结束,首先应该注销所有的会话变量,然后使用session_destroy()函数清除结束当前的会话,并清空会话中的所有资源,彻底销毁Session,代码如下:session_destroy() ;
-
-
第九章 操作文件和目录
-
file_exits()判断文件或目录是否存在
-
fopen()打开文件
-
在PHP中使用fopen()函数打开文件,fopen()函数的语法如下
resource fopen ( string filename, string mode [, bool use_include_path]);
-
-
fclose()关闭文件
-
对文件的操作结束后应该关闭这个文件,否则可能引起错误。在PHP中使用
fclose()函数关闭文件,该函数的语法如下:
bool fclose ( resource handle ) ; <?php $f_open =fopen("../file.txt.","r"); //打开文件 … //对文件进行操作 fclose($f_open) //操作完成后关闭文件 ?>
-
-
读取一个字符函数fgetc()
-
读取一个字符:fgetc()
在对某一个字符进行查找、替换时,需要有针对性地对某个
字符进行读取,在PHP中可以使用fgetc()函数实现此功能。函
数语法如下:
string fgetc ( resource handle )
-
-
opendir()打开目录
-
创建目录函数mkdir()
-
在PHP程序中,通过函数mkdir()新建一个目录,使用mkdir的语法格式如下:
bool mkdir(string pathname [, int mode])
函数mkdir()可以创建一个由pathname指定的目录。其中mode是指操作的权限,默认的mode是0777,表示最大可能的访问权限。
-
-
删除目录函数rmdir()
-
在PHP程序中,通过函数rmdir()可以删除一个目录,使用函数rmdir()的语法格式如下:
bool rmdir(string pathname)
函数rmdir()可以删除有pathname指定的目录。如果要删除pathname所指定的目录,该目录必须是空的,而且要有相应的权限。如果成功则返回true,失败则返回false。
-
第十章 面向对象开发技术
-
创建类
<?php class SportObject{ //定义运动类 //… } ?>
-
成员变量
-
类中的变量,也称为成员变量(也有称为属性或字段的)。成员变量用来保存信息数据,或与成员方法进行交互来实现某项功能。
定义成员变量的格式为:
关键字 成员变量名。
访问成员变量和访问成员方法是一样的。只要把成员方法换成成员变量即可,格式为:
对象名 -> 成员变量
-
-
类常量
-
既然有变量,当然也会有常量。常量就是不会改变的量,是一个恒值。圆周率是众所周知的一个常量。定义常量使用关键字const,如:
const PI= 3.14159;
常量的输出和变量的输出是不一样的。常量不需要实例化对象,直接由“类名+常量名”调用即可。常量输出的格式为:
类名:常量名
-
-
构造方法
-
当一个类实例化一个对象时,可能会随着对象初始化一些成员变量。构造方法的作用就是在生成对象时执行一些操作,也就是初始对象,该方法可以没有参数,也可以有多个参数。构造方法的格式如下:
void __construct([mixed args [,…]])
-
-
类的访问控制
- public(公共成员)
- private(私有成员)
- protected(保护成员)
-
类的继承
- 继承
子类继承父类的所有成员变量和方法,包括构造函数,当子类被创建时,PHP会先在子类中查找构造方法。如果子类有自己的构造方法,PHP会先调用子类中的方法。当子类中没有时,PHP则去调用父类中的构造方法,这就是继承。
例如,在14.1节中通过图片展示了一个运动类,在这个运动类中包含很多个方法,代表不同的体育项目,各种体育项目的方法中有公共的属性。例如,姓名、性别、年龄……但还会有许多不同之处,例如,篮球对身高的要求、举重对体重的要求……如果都由一个SportObject类来生成各个对象,除了那些公共属性外,其他属性和方法则需自己手动来写,工作效率得不到提高。这时,可以使用面向对象中的继承来解决这个难题。
下面来看如何通过PHP中的继承来解决上述问题。继承是通过关键字extends来声明的,继承的格式如下:
class subClass extends superClass{
第十一章 使用MySQL数据库
-
新建数据库和表
创建数据表可以使用CREATE TABLE语句。 语法格式如下: CREATE [TEMPORARY] TABLE [IF NOT EXISTS] 数据表名 [(create_definition,…)][table_options] [select_statement]
-
插入数据
insert into 数据表名(column_name,column_name2, … ) values (value1, value2, … )
-
选择语句
-
删除语句
delete from 数据表名 where condition
-
修改表中的数据
update 数据表名set column_name = new_value1,column_name2 = new_value2, …where condition
-
Mysql时间函数
第十二章 PHP和MySQL数据库
-
连接MySQL数据库
-
使用mysql_connect()函数建立与MySQL服务器的连接。
-
要操作MySQL数据库,首先必须与MySQL服务器建立连接。连接MySQL服务器的语句如下:
mysql_connect(‘hostname’,‘username’,‘password’);
该函数的返回值用于表示这个数据库连接。如果连接成功,则函数返回一个资源,为以后执行SQL指令做准备。
-
-
选择数据库
-
使用mysql_select_db()函数选择MySQL数据库服务器上的数据库,并与数据库建立连接。
-
在连接到MySQL数据库服务器之后,接下来使用mysql_select_db()函数选择数据库。
语法:
mysql_select_db ( string数据库名[,resource link_identifier] )
或
mysql_query(“use数据库名”[,resource link_identifier]);如果没有指定连接标识符,则使用上一个打开的连接。如果没有打开的连接,本函数将无参数调用mysql_connect()函数来尝试打开一个并使用。每个其后的mysql_query()函数调用都会作用于活动数据库。
-
-
使用函数;mysql_fetch_object()
-
使用mysql_fetch_object()函数从结果集中获取一行作为对象
-
使用mysql_fetch_object()函数同样可以获取查询结果集中的数据。下面通过同一个实例的不同方法来了解这两个函数在使用上的区别。首先来了解一下mysql_fetch_object()函数。
语法格式如下:
object mysql_fetch_object ( resource result )
mysql_fetch_object()函数和mysql_fetch_array()函数类似,只有一点区别,即返回的是一个对象而不是数组,该函数只能通过字段名来访问数组。使用下面的格式获取结果集中行的元素。
$ row->col_name //col_name为列名,$ row代表结果集
例如,如果从某数据表中检索id和name值,可以用 r o w − > i d 和 row->id和 row−>id和row-> name访问行中的元素值。
-
-
使用PHP管理MySQL数据库中的数据
- 数据的插入
- 查询数据库中的记录
- 修改数据库中的记录
- 删除数据库中的信息
// 要对数据库中的表进行操作,通常使用mysql_query()函数执行SQL语句。 // 语法: mysql_query ( string query [, resource link_identifier] ) mysql_query()函数是查询指令的专用函数,所有的SQL语句都通过它执行,并返回结果集。 // 如果SQL语句是查询指令select,成功则返回查询后的结果集,失败则返回false;如果SQL语句是insert、delete、update等操作指令,成功则返回true,失败则返回false。 // 下面以会员信息表为例,举例说明常见的SQL语句的用法。 // 例如,执行一个添加会员记录的SQL语句的代码如下: $result=mysql_query("insert into tb_member values('tm','111','tm@tmsoft.com')",$link); // 例如,执行一个修改会员记录的SQL语句的代码如下: $result=mysql_query("update tb_member set user='纯净水',pwd='1025' where user='tm'",$link); // 例如,执行一个删除会员记录的SQL语句的代码如下: $result=mysql_query("delete from tb_member where user='纯净水'",$link); // 例如,执行一个查询会员记录的SQL语句的代码如下: $result=mysql_query("select * from tb_member",$link); // 例如,执行一个显示会员信息表结构的SQL语句的代码如下: $result=mysql_query("DESC tb_member");