第六章 正则表达式 ……。 第七章 PHP数组 本章不亚于字符串操作,对数组的操作同样很重要。本章介绍内容:数组概念、声明一维数组、二维数组的方法地、输出数组的方法、边历数组的方法、字符串与数组间转换的方法、统计数组元素个数的方法、查询数组中指定元素的方法、获取数组中最后一个元素的方法、向数组中添加元素的方法、删除数组中重复元素的方法、数组函数在多个文件上传中的应用方法。 7.1、什么是数组:即一组数据的集合,把一系列数据组织起来形成一个可操作的整体。PHP数组相对复杂,同时也更灵活。数组是一组有序的变量,每个变量被称为一个元素。每个元素由一个特殊标识符来区分,这个标识符称为键,也叫下标。即数组中的每个实体都包含两项:键和值。可通过键来获取相应元素,这些键可以是数值键或关联键。 7.2、声明数组:两种方式,一种是应用array()函数声明数组,另一种是直接为数组元素赋值。应用array()函数声明数组方式如下: array array([mixed...]); mixed的语法为key==>value,多个mixed间用逗号分开,索引可以是数字或字符串。若省略索引,则会自动产生从0开始的整数索引。例: 注意:可以通过给变量赋予一个没有参数的array()函数来创建空数组,然后使用方括号语法来添加值。例: 有同学要问下标为1.2.3.4的元素哪去了?其实这个我也不太清楚,偶也是第一次接触PHP,数组确实与java、C的不太一样。 7.3、数组的类型:两种,索引数组和联合数组,区别是前者使用数字为键,后者使用字符串为键。这里仅说说关联数组,个人理解有点象java中的Map,即Map<String,Object>。看一个实例: 如果目前还不是太理解其用处,暂且往下学习吧。 7.4、数组输出函数:print_r(mixed),若mixed为一般变量,输出其本身,若为数组则按序列输出。 7.5、数组的构造:一维数组和二维数组。 当数组的元素为一般变量时为一维数组,当数组元素为数组时为二维数组。 7.6、遍历数组:这个操作很常用,方法有多种,这里只介绍两种常用的。 7.6.1、使用foreach遍历数组: 7.6.2、使用list()遍历数组: 这个实例搞的我没看懂,先跳过。 7.7、字符串与数组的转换:主要通过前面学过的explode()和implode()两个函数实现。 7.8、统计数组元素个数:使用count()函数,语法格式: int count(mixed array,[int mode]); 第二个可选参数的值为1或0,若为1则递归统计,针对二维数组,默认为0. 7.9、查询数组中的指定元素:使用array_search()函数,格式如下: mixed array_search(mixed needle,array,[bool]); 第一个参数是需要查询的字符,第二个参数即数组,第三个可选参数有两个值:true\false。 该函数在数组中搜索给定的值,找到返回键名,找不到返回false,第三个参数通过书上介绍俺还没懂,先不说了。 7.10、获取数组中的最后一个元素:使用函数array_pop(),使用后数组长度减1,若数组为空或不是数组,则返回null。 7.11、向组合添加元素:函数array_push(),格式如下: int array_push(array array,mixed var); 7.12、删除数组中重复元素:array_unique(),对每个值只保留一个键名,即删除重复元素。 第八章:PHP与WEB页面交互 PHP与WEB页面交互是学习PHP语言编程的基础。PHP中提供了两种交互方法,一是通过WEB表单提交数据,另一种是通过URL参数传递。本章能够介绍的内容:表单及表单元素、WEB页中插入表单的过程、获取表单数据的两种方法、PHP传递参数的两种方法、对URL传递参数编码和解码技术、WEB页中插入PHP脚本的方法、获取各种表单数据的操作、PHP与WEB表单的综合应用。 8.1、表单:表单其实是一个客户端与服务器交互的平台,WEB表单是通过网页向服务器发送数据,服务器处理数据后返回网页浏览器,从而实现交互的过程。 8.11、创建表单: 在使用form表单时,必须指定其action属性,这个属性指定表单提交时将内容发往何处。 注意:表单里method属性的默认方法是GET方法。GET方法是将表单内容附加在URL地址后面发送;POST方法是将表单中的信息作为一个数据块发送到服务器上,在浏览器的地址栏不显示提交的信息。 8.12、表单元素: 8.2、在WEB页中插入表单: 8.3、获取表单数据的两种方法: 表单向发送数据是PHP与WEB交互最基本的操作,表单数据传递有两种方法:POST和GET。采用哪种依法有method属性决定。 8.3.1、使用POST方法:优点是安全性高、容量较大。 8.32、使用GET: 格式:URL?name1=value1&name2=value2... 注意:使用GET发送时,URL长度限制在1MB字符以内,如果太长数据将被截断。 8.4、PHP参数传递的常用方法:3种,$_POST[]\$_GET[]\$_SESSION[],分别用于获取表单、URL、Session变量的值。 8.4.1、$_POST[]全局变量:格式如下: $_POST[name]; 比如:一个表单中有名为user的input,method属性设置POST,数据提交后PHP页接受方法: <?php $user=%_POST["user"]; ?> 8.4.2、$_GET[]全局变量,格式如下: $_GET[name]; 注意:表单元素名称区别大小区,书写时要注意。 8.4.3、$_SESSION[]变量,格式: $_SESSION[name]; 例:一个表单提交一个名为user的值,使用SESSION获取 $user=$_SESSION["user"]; 使用SESSION传参的方法获取的变量值,保存之后在任何页面都可以使用。但这种方法很消耗服务器资源,应慎用。 8.5、Web页中嵌入PHP脚本 8.6、在PHP中获取表单数据 8.7、对URL传递的参数进行编、解码: 实例:<a href="index.php?id=<?php echo urlencode("我的数据");?>">编码传递</a> <?php if(isset($_GET['id'])){ $code=urldecode($_GET['id']); } 8.8、PHP与WEB表单的综合应用: 第十章:日期和时间 在任何开发中对日期和时间的处理是必不可少的。本章介绍:系统时区的设置方法、获取本地时间戳的方法、获取当前日期和时间的方法、获取日期信息的方法、将日期和时间解析为UNIX时间戳的方法、比较两个时间的大小、倒计时功能、计算页面运行时间的方法。 10.1、系统时区设置: 10.1.2、时区设置:更改PHP时区设置有两种方法: 10.2、PHP日期和时间函数: PHP提供了大量的内置函数,使我们处理起来很快捷。 10.2.1、获取本地化时间戳:mktime()将一个时间转成UNIX的时间戳。 int mktime(int hour,int minute,int second,int month,int day,int year,[int is_dst]); 需要说明的参数:second小于60的整数;year可以是两数或4位,0-69对应2000-2069,70-100对应1970-2000;可选参数is_dst在夏令时可被设置为1,如果不是则设置为0;若不确定设置为-1,即默认值。 10.2.2、获取当前时间戳:time() PHP通过time()获取当前的UNIX时间戳,语法: int time(void); 例:获取当前时间戳,并将时间戳格式化输出。 <?php $nextWeek=time()+7*24*60*60; echo 'Now:'.date('Y-m-d').'<p>'; echo 'Next Week:'.date('Y-m-d',$nextWeek); ?> 10.2.3、获取当前日期和时间:date(),语法: date(string format,[int timestamp]); 10.2.4、获取日期信息:getdate() 10.2.5、检查日期的有效性:checkdate(),语法如下: bool checkdate(int month,int day,int year); 10.2.6、输出格式化的日期和时间:上个图吧,真多 10.2.7、显示本地化的日期和时间 这里介绍两个函数:setlocale()\strftime(),通过这两个函数可设置本地化环境和格式化输出日期和时间,其它先不多介绍了,以后用到了再回头详细学习。 10.2.8、将日期和时间解析为UNIX时间戳:int strtotime(string time,[int now]) 10.3、日期和时间的应用 10.3.1、比较两个时间的大小: 在PHP中两个时间不能直接比较,先转为时间戳再比较。 例:strtotime($time1)-strtotime($time2) 10.3.2、实现倒计时功能: 这里只介绍一个ceil()函数,该函数返回一个不小于参数值的最小整数,若有小数部分,则进一位。需要注意的是这个返回值是float型,非整型。 10.3.3、计算页面脚本的运行时间:microtime() 该函数返回当前UNIX时间戳和微秒数,返回格式为msec sec的字符串。语法: string microtime(void); 该函数常与list()函数配合使用,即将时间戳和微秒数赋给两个变量。例: list($a,$b)=explode(' ',microtime()); |
|