PHP期末复习

第一章 PHP开发基础

搭建环境

  1. phpstudy组合包

    • 组合包,就是将Apache、PHP、MySQL等服务器软件和工具安装配置完成后打包处理。开发人员只要将已配置的套件解压到本地硬盘中即可使用,无须再另行配置。
  2. 学会运行第一个PHP程序

    • <body>
      <?php
      	echo "欢迎进入PHP的世界!!";
      ?>
      </body>
      

第二章 PHP语言的基础语法

  1. 变量的定义

    • PHP中的变量名称用“$”和标识符表示,变量名是区分大小写的。变量赋值,是指给变量一个具体的数据值,对于字符串和数字类型的变量,可以通过“:”来实现赋值。

    • 变量赋值是指赋予变量具体的数据,自从PHP 4.0开始,PHP不但可以对变量赋值,还可以对变量赋予一个变量地址,即引用赋值。定义并赋值PHP变量的语法格式如下所示:

    • <?php $name = value; ?>
      
    • 命名规则:

      • 在PHP中的变量名是区分大小写的。
      • 变量名必须是以美元符号($)开始。
      • 变量名开头可以以下划线开始。
      • 变量名不能以数字字符开头。
      • 变量名可以是中文。
      • 变量名可以包含一些扩展字符(如重音拉丁字母),但不能包含非法扩展字符(如汉字字符和汉字字母)
  2. 变量作用域

    • 局部变量:即在函数的内部定义的变量,其作用域是所在函数。
    • 全局变量:即被定义在所有函数以外的变量,其作用域是整个PHP文件,但是在用户自定义函数内部是不可用的。要想在用户自定义函数内部使用全局变量,需要使用global关键词进行声明。
    • 超级变量:PHP系统自带的变量,在任何位置都可用的特定数量的变量,并且可以从脚本的任何位置访问它们。($ _GLOBALS,$ _SERVER,$ _REQUEST,$ _POST,$ _GET,$ _FILES等)
  3. 常量

    • 在PHP程序中,常量是指其值在程序的运行过程中不发生变化的量,常量值被定义后,在脚本的其他任何地方都不能改变。PHP常量的语法规则如下所示:
      • 常量前面没有美元符号($)。
      • 常量只能用 define()函数定义,而不能通过赋值语句。
      • 常量可以不用理会变量范围的规则而在任何地方定义和访问。
      • 常量一旦定义就不能被重新定义或者取消定义。
      • 常量的值只能是标量。
  4. 布尔数据类型

    • 布尔变量是PHP中最简单的,它保存了一个True或者False值。其中True或者False是PHP的内部关键字。设定一个布尔型的变量后,只需将True或者False赋值给该变量即可,并不区分大小写。

    • <?php
      	$boo = true;
          if($boo == true) {
              echo '变量$boo为真!';
          }else {
              echo '变量$boo为假!!';
          }                         
      ?>
      
  5. 字符串数据类型

    • 字符串是一个连续的字符序列,字符串中的每个字符只占用一个字节。在PHP程序中,有如下3种定义字符串的方式:
      • 单引号方式。
      • 双引号方式。
      • Heredoc方式。
  6. 理解自增/自减运算符

    • 在这里插入图片描述
  7. 掌握数据类型的转换

    • 在这里插入图片描述

第三章 流程控制语句

  1. if…else语句

    • <?php
        	$a = 3;
        	$b = 1;                                                                                        
        	if($a < $b){
            	echo “a小于b”;
        	}else{
            	echo “a不会小于b”;
        	}
      ?>
      
  2. 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;
          }
      ?>
      
  3. 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;  } 
          }
      ?>
      
  4. 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";
                }
             }
          }
      ?>
      
  5. return

    • 在PHP程序中,如果在一个函数中调用 return()语句,将会立即结束此函数的执行并将它的参数作为函数的值返回,并且return()也会终止运行。如果在全局范围中调用return()语句,则当前脚本文件中止运行。

    • <?php
      	function add($a,$b){
       	return $a+$b;
      	return $a*$b;
      	}
      	$c = add(5,3);//得到的$c值可以用在程序的其他地方!
      	echo $c;
      ?>
      
  6. 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>';	
      ?>
      
      
      

第四章 函数

  1. 通过引用传递参数

    • 在调用函数时需要向函数传递参数,被传入的参数称为实参,而在函数中定义的参数为形参。在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); 
          ?>
          
  2. 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的日期
      ?>
      
  3. 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>'; 
?>

  1. 数字索引数组

    • PHP数字索引一般表示数组元素在数组中的位置,它由数字组成,下标从0开始。数字索引数组的默认索引值从数字0开始,不需要特别指定,PHP会自动为索引数组的键名赋一个整数值,然后从这个值开始自动增量,当然也可以指定从某个位置开始保存数据。数组可以构造成一系列“键-值(key-value)”对,其中每一对都是数组的一个项目或元素(element)。对于数组中的每个项目,都有一个与之关联的键( key)或索引(index)相对应。
  2. 关联数组

    • 在PHP程序中,关联数组的键名可以是数字和字符串混合的形式,而不像数字索引数组的键名只能为数字。在一个PHP数组中,只要在键名中有一个不是数字,那么这个数组就称为关联数组。关联数组( associative array)使用字符串索引(或键)来访问存储在数组中各元素的值,关联索引的数组对于数据库层交互非常有用。
  3. 删除数组中重复元素

    // 在数组中经常会出现元素重合的问题,这时可以把多余的元素删除。在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 ) ;      
    ?>
    
  4. 删除数组中的元素或整个数组

    // 在开发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 ) ;   
    ?>
    
    
  5. 向数组结尾添加新元素

    //在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);
      ?>
    
  6. 将字符串转换成数组

    // 在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);
    
  7. 获取数组中的最后一个元素

    // 在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);
    ?>
    
  8. 统计数组元素

    // 在PHP中,使用count()函数对数组中的元素个数进行统计。语法格式如下所示。
    int count( mixed array [, int mode] )
    
    // array:必须参数。输入的数组。
    // mode:0-默认。不计算多为数组中的所有元素。1-递归地计算数组中元素的数目(计算多维数组中元素的数目)
    
    // 实例5-15 统计数组元素
    <?php
    	$array1 = array('张三','李四','a1'=>'王五','a2'=>'豆豆','杨杨','小花','a3'=>'小猪');
    	echo count($array1);
    ?>
    

第六章 字符串

  1. trim()函数去除字符串首尾空格和特殊字符

    <?php
        header("content-type:text/html;charset=utf-8");
    	$str = "\r\r(:@_@创图书编撰伟业展软件开发雄风@_@:)    ";
    	echo trim($str);
    	echo "<br>";
    	echo trim($str,"\r\r(:  :)");
    ?>
    
  2. ltrim()函数去除字符串左边空格和特殊字符

    <?php
    	header("content-type:text/html;charset=utf-8");
    	$str = " (:@_@ 创图书编撰伟业 @_@:) ";
    	echo ltrim($str);
    	echo "<br>";
    	echo ltrim($str," (:@_@:)");
    	echo "<br>";
    ?>
    
  3. rtrim()函数去除字符串右边空格和特殊字符

    <?php
    	header("content-type:text/html;charset=utf-8");
    	$str = " (:@_@ 展软件开发雄风 @_@:) ";
    	echo rtrim($str);
        echo "<br>";
    	echo rtrim($str," :)@_@");
    	echo "<br>";
    ?>
    
  4. 获取字符串的长度

    // 获取字符串的长度使用的是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个字符,数字、英文、小数点、下划线和空格占一个字符。
    
  5. 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,".");
    ?>
    
  6. 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);
    ?>
    
  7. 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页面

  1. 使用POST()方法提交表单

    • 应用POST方法时,只需将表单中的属性method设置成POST即可。POST方法不依赖于URL,不会显示在地址栏。POST方法可以没有限制地传递数据到服务器,所有提交的信息在后台传输,用户在浏览器端是看不到这一过程的,安全性高。所以POST方法比较适合用于发送一个保密的(如信用卡号)或者容量较大的数据到服务器。
  2. 使用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,固定不变。

  3. $POST[]全局变量

    // 使用PHP的$_POST[]预定义变量可以获取表单元素的值,格式为:$_POST[name]例如,建立一个表单,设置method属性为POST,添加一个文本框,命名为user,获取表单元素的代码如下:
    <?php
    	$user=$_POST["user"];	//应用$_POST[]全局变量获取表单元素中文本框的值
    ?>
    
  4. $_GET[]全局变量

    // PHP使用$_GET[]预定义变量获取通过GET方法传过来的值,使用格式为:$_GET[name]
    // 这样就可以直接使用名字为name的表单元素的值了。例如,建立一个表单,设置method属性为GET,添加一个文本框,命名为user,获取表单元素的代码如下:
    
    <?php
    	$user=$_GET["user"];	//应用$_GET[]全局变量获取表单元素中文本框的值
    ?>
    
    
  5. 获取文本框、密码域、隐藏域、按钮、文本域的值

    • 获取表单数据,实际上就是获取不同的表单元素的数据。标签中的name是所有表单元素都具备的属性,即为这个表单元素的名称,在使用时需要使用name属性来获取相应的value属性值。
  6. 获取单选按钮的值

    • radio(单选按钮)一般是成组出现的,具有相同的name值和不同的value值,在一组单选按钮中,同一时间只能有一个被选中。
  7. 获取复选框的值

    • 复选框能够进行项目的多项选择。浏览者填写表单时,有时需要选择多个项目,例如,在线听歌中需要同时选取多个歌曲等,就会用到复选框。复选框一般都是多个同时存在,为了便于传值,name的名字可以是一个数组形式,格式为:

      在返回页面可以使用count()函数计算数组的大小,结合for循环语句输出选择的复选框的值。

  8. 获取下拉列表框的值

    • 获取下拉列表框的值的方法非常简单,与获取文本框的值类似,首先需要定义下拉列表框的name属性值,然后应用$_POST[]全局变量进行获取。
  9. 获取文件域的值

    • 文件域的作用是实现文件或图片的上传

第八章 Cookie与Session

  1. 什么是Cookie

    • Cookie是一种在远程浏览器端存储数据并以此来跟踪和识别用户的机制。简单地说,Cookie是Web服务器暂时存储在用户硬盘上的一个文本文件,并随后被Web浏览器读取。当用户再次访问Web网站时,网站通过读取Cookies文件记录这位访客的特定信息(如上次访问的位置、花费的时间、用户名和密码等),从而迅速作出响应,如在页面中不需要输入用户的ID和密码即可直接登录网站等。
  2. 创建Cookie

    // 在PHP中通过setcookie()函数创建Cookie。语法格式如下:
    bool setcookie(string name[,string value[,int expire[, string path[,string domain[,int secure]]]]])
    
  3. 读取Cookie

    • 在PHP中可以直接通过超级全局数组_COOKIE来读取浏览器的Cookie值
  4. 删除Cookie

    • 删除cookie主要有两种方法:一种是使用setcookie()函数删除,另一种是在浏览器中手动删除cookie。

      • 1.使用setcookie函数删除Cookie

        删除Cookie和创建Cookie的方式基本类似,删除Cookie也使用setcookie()函数。删除Cookie只需要将setcookie()函数中的第二个参数设置为空值,将第3个参数Cookie的失效时间设置为小于系统的当前时间即可。

        1. 在浏览器中手动删除Cookie

        启动IE浏览器,选择“工具”/“Internet选项”命令,打开“Internet选项”对话框,在“常规”选项卡中单击“删除Cookies”按钮,单击“确定”按钮,即可成功删除全部Cookie文件。

  5. Cookie的生命周期

    • ​ 如果Cookie不设定失效时间,就表示它的生命周期为浏览器会话的期间,只要关闭IE浏览器,Cookie就会自动消失。这种Cookie被称为会话Cookie,一般不保存在硬盘上,而是保存在内存中。

      ​ 如果设置了失效时间,那么浏览器会把Cookie保存在硬盘中,再次打开IE浏览器时会依然有效,直到它的有效期超时。

      ​ 虽然Cookie可以长期保存在客户端浏览器中,但也不是一成不变的。因为浏览器最多允许存储300个Cookie文件,而且每个Cookie文件支持最大容量为4KB;每个域名最多支持20个Cookie,如果达到限制时,浏览器会自动地随机删除Cookie文件。

  6. Session工作原理

    • 当启动一个Session会话时,服务器端会生成一个随机且唯一的sessionid,也就是Session的文件名,此时sessionid存储在服务器的内存中,当关闭页面时此id会自动注销,重新登录此页面,会再次生成一个随机且唯一的sessionid。
    • 服务器端将生成的session_id返回给客户端,通过set-cookie。
    • 客户端收到sessionid会将它保存在cookie中,当客户端再次访问服务端时会带上这个sessionid。
    • 当服务端再次接受到来自客户端的请求时,会先去检查是否存在sessionid,不存在就新建一个sessionid,重复1,2的流程,如果存在就去遍历服务端的session文件,找到与这个sessionid相对应的文件。文件中的键值便是sessionid,值为当前用户的一些信息。
    • 此后的请求都会交换这个sessionid,进行有状态的会话。
  7. 启动会话

    // 创建一个会话需要通过以下步骤:
    // 启动会话→注册会话→使用会话→删除会话
    // 1.启动会话
    // 通过session_start ()函数启动会话。语法格式如下:
    bool session_start(void) ;
    
  8. 注册会话

    // 会话变量被启动后,全部保存在数组$_SESSION中。通过数组$_SESSION创建一个会话变量很容易,只要直接给该数组添加一个元素即可。
    // 例如,启动会话,创建一个Session变量并赋予空值,代码如下:
    <?php 
        session_start();	//启动Session				
        $_SESSION["admin"] = null; //声明一个名为admin的变量,并赋空值
    ?>
    
  9. 使用会话

    // 首先需要判断会话变量是否有一个会话ID存在,如果不存在,就创建一个,并且使其能够通过全局数组$_SESSION进行访问。如果已经存在,则将这个已注册的会话变量载入以供用户使用。
    // 例如,判断存储用户名的Session会话变量是否为空,如果不为空,则将该会话变量赋给$myvalue,代码如下:
    <?php
        if ( !empty ( $_SESSION['session_name']))	//判断用于存储用户名的Session会话变量是否为空
        $myvalue = $_SESSION['session_name'] ; //将会话变量赋给一个变量$myvalue
    ?>
    
  10. 删除会话

    • 删除会话的方法主要有删除单个会话、删除多个会话和结束当前会话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() ;

第九章 操作文件和目录

  1. file_exits()判断文件或目录是否存在

  2. fopen()打开文件

    • 在PHP中使用fopen()函数打开文件,fopen()函数的语法如下

      resource fopen ( string filename, string mode [, bool use_include_path]);
      
  3. fclose()关闭文件

    • 对文件的操作结束后应该关闭这个文件,否则可能引起错误。在PHP中使用

      fclose()函数关闭文件,该函数的语法如下:

      bool fclose ( resource handle ) ;
      
      <?php
      	$f_open =fopen("../file.txt.","r");	   //打开文件//对文件进行操作
      	fclose($f_open)	 //操作完成后关闭文件				
      ?>
      
  4. 读取一个字符函数fgetc()

    • 读取一个字符:fgetc()

      在对某一个字符进行查找、替换时,需要有针对性地对某个

      字符进行读取,在PHP中可以使用fgetc()函数实现此功能。函

      数语法如下:

      string fgetc ( resource handle )
      
  5. opendir()打开目录

  6. 创建目录函数mkdir()

    • 在PHP程序中,通过函数mkdir()新建一个目录,使用mkdir的语法格式如下:

      bool mkdir(string pathname [, int mode])
      

      函数mkdir()可以创建一个由pathname指定的目录。其中mode是指操作的权限,默认的mode是0777,表示最大可能的访问权限。

  7. 删除目录函数rmdir()

    • 在PHP程序中,通过函数rmdir()可以删除一个目录,使用函数rmdir()的语法格式如下:

      bool rmdir(string pathname)
      

      函数rmdir()可以删除有pathname指定的目录。如果要删除pathname所指定的目录,该目录必须是空的,而且要有相应的权限。如果成功则返回true,失败则返回false。

第十章 面向对象开发技术

  1. 创建类

    <?php
    	class SportObject{			//定义运动类
    		//…
    	}
    ?>
    
  2. 成员变量

    • 类中的变量,也称为成员变量(也有称为属性或字段的)。成员变量用来保存信息数据,或与成员方法进行交互来实现某项功能。

      定义成员变量的格式为:

      关键字 成员变量名。

      访问成员变量和访问成员方法是一样的。只要把成员方法换成成员变量即可,格式为:

      对象名 -> 成员变量

  3. 类常量

    • 既然有变量,当然也会有常量。常量就是不会改变的量,是一个恒值。圆周率是众所周知的一个常量。定义常量使用关键字const,如:

      const PI= 3.14159;

      常量的输出和变量的输出是不一样的。常量不需要实例化对象,直接由“类名+常量名”调用即可。常量输出的格式为:

      类名:常量名

  4. 构造方法

    • 当一个类实例化一个对象时,可能会随着对象初始化一些成员变量。构造方法的作用就是在生成对象时执行一些操作,也就是初始对象,该方法可以没有参数,也可以有多个参数。构造方法的格式如下:

      void __construct([mixed args [,…]])

  5. 类的访问控制

    • public(公共成员)
    • private(私有成员)
    • protected(保护成员)
  6. 类的继承

    • 继承

    子类继承父类的所有成员变量和方法,包括构造函数,当子类被创建时,PHP会先在子类中查找构造方法。如果子类有自己的构造方法,PHP会先调用子类中的方法。当子类中没有时,PHP则去调用父类中的构造方法,这就是继承。

    例如,在14.1节中通过图片展示了一个运动类,在这个运动类中包含很多个方法,代表不同的体育项目,各种体育项目的方法中有公共的属性。例如,姓名、性别、年龄……但还会有许多不同之处,例如,篮球对身高的要求、举重对体重的要求……如果都由一个SportObject类来生成各个对象,除了那些公共属性外,其他属性和方法则需自己手动来写,工作效率得不到提高。这时,可以使用面向对象中的继承来解决这个难题。

    下面来看如何通过PHP中的继承来解决上述问题。继承是通过关键字extends来声明的,继承的格式如下:

    class subClass extends superClass{

第十一章 使用MySQL数据库

  1. 新建数据库和表

    创建数据表可以使用CREATE TABLE语句。
    语法格式如下:
    CREATE [TEMPORARY] TABLE [IF NOT EXISTS] 数据表名
    [(create_definition,…)][table_options] [select_statement]
    

    在这里插入图片描述

  2. 插入数据

    insert  into 数据表名(column_name,column_name2, … ) values (value1, value2, … )
    
  3. 选择语句

  4. 删除语句

    delete from 数据表名 where condition
    
  5. 修改表中的数据

    update 数据表名set column_name = new_value1,column_name2 = new_value2, …where condition
    
  6. Mysql时间函数

    在这里插入图片描述

第十二章 PHP和MySQL数据库

  1. 连接MySQL数据库

    • 使用mysql_connect()函数建立与MySQL服务器的连接。

    • 要操作MySQL数据库,首先必须与MySQL服务器建立连接。连接MySQL服务器的语句如下:

      mysql_connect(‘hostname’,‘username’,‘password’);

      该函数的返回值用于表示这个数据库连接。如果连接成功,则函数返回一个资源,为以后执行SQL指令做准备。

  2. 选择数据库

    • 使用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()函数调用都会作用于活动数据库。

  3. 使用函数;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>idrow-> name访问行中的元素值。

  4. 使用PHP管理MySQL数据库中的数据

    1. 数据的插入
    2. 查询数据库中的记录
    3. 修改数据库中的记录
    4. 删除数据库中的信息
    // 要对数据库中的表进行操作,通常使用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");	 
    
    
  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值