Docstoc

第8章 PHP中的数据处理

Document Sample
第8章 PHP中的数据处理 Powered By Docstoc
					第8章 PHP中的数据处理
• 数据的处理是在进行实际编程过程中,都会遇见
  的重要内容。如对数值的操作、对字符串的操作、
  对数组的操作等等。本章就来介绍PHP中的数据处
  理。通过本章的学习,读者能够熟练掌握PHP中常
  用的各种数据处理的方法与技巧。并为进行大型
  程序的开发打下坚实的基础。
8.1 数值的处理
• 数值的处理就是对编程过程中产生的各种数值型
  变量(包括整型变量与浮点数变量两种)的处理。
  所有这些数学运算、数值的操作在PHP的数据处理
  中占有相当大的比重。本节就来介绍PHP中的数值
  处理即PHP中常用的数学函数。
8.1.1 求绝对值
•   求绝对值运算是数学运算中最为常见的一类运算。PHP库函数中内
    置了求绝对值函数abs(),使用该函数可以轻松实现求一个数的绝
    对值。该函数的语法格式如以下代码所示。
•   abs(mixed var);
•   以上代码所示该函数的参数var为mixed型,即既可以是integer
    (整型数)也可以是float(浮点数)。如果参数是整型数,则函
    数的返回值也为整型数;如果参数为浮点数则返回值也是浮点数。
8.1.2 取整运算
• 取整运算可以获取指定非整数数值的整数部分。
  在进行PHP进行实际编程的过程中,会遇到一些非
  整数,如果过程要求只有整数才能参与运算(如
  计算数量),此时就需要把该类非整数转换为整
  数。PHP中提供了三种取整的方法,分别是:进一
  法取整、舍去法取整、四舍五入取整。3种方法分
  别对应3个PHP数值处理函数,如表所示。
8.1.3 三角运算
•   三角运算可以计算角度或弧度的各项三角函数值。如果运算值是角度,应
    该首先将角度值转换为弧度值。这时,需要使用转换函数deg2rad()。其
    语法如下所示。
•   float deg2rad(float number )
•   该函数的参数为表示角度的浮点数,函数将返回与该角度值对应的弧度值。
    三角函数通常包括:求一个角的正弦值、余弦值、正切值、余切值以及这
    些函数的反函数等等。而PHP中的三角函数的表述方法与此类函数数学的
    表述方法一模一样。常用的三角函数如表所示。
8.1.4 最值的使用
• 使用PHP中的最值函数,可以非常方便地计算出组数中的最大或者
  最小值。与传统的编程工具(如C语言)的冒泡排序法相比,PHP
  中的最值函数方法既简单又不容易出错。PHP中包含以下两个最值
  函数:求最大值函数max()、求最小值函数min()。
• 1.max函数
• max()函数返回指定参数中的最大值。该函数有两种调用方式,语
  法格式分别如下所示。
• mixed max(number arg1,number arg2)
• mixed max(array numbers[,array...])
• 2.min函数
• min()函数返回指定参数中的最小值函数,该函数有两种调用方式,
  语法格式如下代码所示。
• mixed min(number arg1,number arg2)
• mixed min(array numbers[,array...])
8.1.5 生成随机数
• 随机数在进行网络应用程序开发过程中有着广泛的应用。
  如常见的向服务端后台提交内容时的随机验证码,根据一
  定规则生成的随机文件名等等。而PHP对随机数也有很好的
  支持。本节就来学习PHP中的随机数函数的应用。
• 在PHP中要使用随机数,最主要的要用到一个函数:rand。
  该函数的使用格式如下:
• int rand([int min,int max])
• 该函数将产生一个位于可选参数min与max之间的随机数。
  由于此二参数为可选参数,所以此二参数可以省略。如果
  不带任何参数,函数将返回0到RAND_MAX(系统所支持的最
  大值)之间的伪随机数。
8.1.6 判断数据类型
•   在使用PHP进行数据处理时,首要的前提就是要知道数据的类型。只有先
    知识了数据的类型,才能对它进行进一步的操作。PHP中有一类专门的函
    数用于判断变量的数据类型。具体内容请参看表:PHP中的数据类型判断
    函数。
8.1.7 进制转换函数
• 人们通常使用习惯的进制为十进制,而计算机的数据表达
  方式通常为二进制、十六进制或者八进制等。这就需要在
  特殊的使用场合对数据的进制进行相应的转换。如把二进
  制数值转换为十进制数值、把十进制数值转换为十六进制
  数值等等。PHP中也提供了一类专门用于进制转换的函数。
  PHP中常用的进制转换函数如表所示。
8.1.8 其他数值处理函数
•   除了以上介绍的几种常用数值处理函数之外,PHP中还有以下数值处理函数。使用这些函数可以对
    数值进行对应的数学计算,下面开始作详细介绍。
•   1.计算指数函数exp
•   指数函数的语法格式如以下代码所示。
•   float exp(float arg)
•   2.计算直角三角形的斜边长度:hypot
•   求直角三角形斜边长度函数hypot的语法格式如下所示。
•   float hypot(float x,float y)
•   3.判断是否为有限值:is_finite
•   有限值函数使用格式如下所示。
•   bool is_finite(float val)
•   4.判断是否为无限值:is_infinite
•   无限值函数的使用格式如下所示。
•   bool is_infinite(float val)
•   5.判断是否为合法数值:is_nan
•   合法值函数使用格式如以下代码所示。
•   bool is_nan(float val)
•   6.得到圆周率值:pi
•   求圆周率值函数的使用格式如以下代码所示。
•   float pi()
8.2 字符串的处理
• 字符串也是程序运行中经常要使用的最重要的内
  容之一。特别是在网络应用程序中,有相当多的
  内容也都要与字符串发生联系。如:用户提交的
  内容为字符串、从库中查询出的结果为字符串、
  小偷程序从网上搜集的其他网站内容也为字符串
  等。而如何对字符串进行有效的操作,成为字符
  串处理的关键。本节就来介绍PHP中的常用字符串
  处理函数。
8.2.1 字符串的输出
• PHP中为字符串的输出提供了多种方法,具体如表
  所示。
8.2.2 字符串的长度
• 在进行字符串处理时,获取字符串的长度是相当
  有必要的。在其他编程语言中,字符串的长度通
  常是作为字符串的一个属性出现(如:
  JavaScript)。而在PHP中,则提供了专门的获取
  字符串长度的函数。本节就来介绍PHP中的字符串
  长度的获取。
• 在PHP中,使用函数:strlen()来获取字符串长度。
  该函数接受一个字符串变量作为参数,函数将返
  回一个整型数,该整型数表示需要获取字符串的
  长度。
8.2.3 字符串的截取
• 字符串的截取也是进行字符串操作的一个重要内容。如对
  一个字符串截取其中一部分,或者截取一个字符串从第几
  个字符到第几个字符之间的内容等。PHP中也提供了字符串
  截取的支持。本小节来介绍PHP中的字符串截取函数。
• 在PHP中使用函数substr()来实现字符串的截取操作。该函
  数使用样式如下:
• string substr(string string,int start[,int length])
• 其中参数string为指定欲截取的字符串,参数start为开始
  截取的位置,可选参数length为指定截取的长度,如果省
  略该参数,则截取到原始串的末尾。如果start为负数,就
  从字符串尾端算起。若可选参数length存在,但为负数,
  则表示取到倒数第length个字符。
8.2.4 字符串的替换
• 对字符串中内容的替换操作,也是字符串操作中
  的一个重要的内容。这种情况常用于修改字符串
  中指定和内容等。在PHP中可以通过函数strtr()
  与函数substrreplace()来实现对字符串的替换操
  作。
• 1.转换字符串中的某些字符
• string strtr(string str,string from,string
  to)
• string strtr(string str,array replace_pairs)
• 2.替换字符串中的一部分为另一字符串
• mixed substr_replace(mixed string,string
  replacement,int start[,int length])
8.2.5 字符串的分割
• 字符串的分割在字符串的操作中有着重要的地位,有很多
  Web应用中需要对字符串内容进行分割。比较常见的有以文
  本作为载体的留言簿程序就是这样。而PHP中也同样提供了
  对字符串分割操作的支持。
• 在PHP中要想执行字符串的分割操作,可以使用函数
  explode(),该函数的使用格式如下所示。
• array explode(string separator,string string[,int
  limit])
• 其中参数separator为欲执行分割操作的字符串中的一个子
  串(即分割标记);参数string为欲执行分割操作的目标
  字符串;可选参数limit为最多返回数组元素的数量。执行
  此函数将返回一个数组,数组的每一个元素为原始串的子
  串。
8.2.6 字符串的比较
• 数值可以比较大小,同样字符串也可以比较其大
  小。两个数值变量之间比较大小,仅通过简单的
  比较运算符就可以就行。而字符串之间的比较则
  要通过专门的函数来进行。PHP中就提供了字符串
  比较大小的函数:strcasecmp()。
• 1.strcasecmp:不区分大小写比较
• int strcasecmp(string str1,string str2)
• 2.strnatcmp:区分大小写比较
• int strnatcmp(string str1,string str2)
8.2.7 字符串的大小写
• 在对字符串特别是英文字符串进行操作时,字符的大小写通常是
  一个需要重点解决的问题。如:把字符串转换为大写或者小写、
  把字符串中的首字符转换为大写等等。而PHP中也为此类操作提供
  了一组专门的函数。本小节就来介绍一下PHP中的与字符串的大小
  写转换相关的函数。
• PHP中提供了以下几个函数来对字符串的大小写进行操作:
• strtolower:将字符串中的所有字符全部转换为小写。
• string strtolower(string string)
• strtoupper:将字符串中的所有字符全部转换为大写。
• string strtoupper(string string)
• ucfirst:将字符串中的第一个字母转换为大写。
• string ucfirst(string string)
• ucwords:将字符串中的每一个单词的第一个字母转换为大写。
• string ucwords(string string)
8.2.8 字符与ASCII码
• ASCII码(American Standard Code for Information
  Interchange,美国标准信息交换码)是目前计算机中用得
  最广泛的字符集及其编码。它是由美国国家标准局(ANSI)
  制定的,已被国际标准化组织(ISO)定为国际标准,称为
  ISO 646标准。适用于所有拉丁文字字母,ASCII码有7位码
  和8位码两种形式。
• 而在PHP作为一种高级编程语言,也支持字符与其对应的
  ASCII码之间的各种操作。本小节就来介绍PHP中的字符与
  ASCII码相关的函数。
• 1.chr将指定的序数转化为相应的ASCII字符
• string chr(int ascii)
• 2.ord返回一个字符对应的ASCII码
• int ord(string str1)
8.2.9 其他字符串处理函数
•   除了以上介绍的几种常用的字符串处理函数之外,PHP中还有以下字符串
    处理函数。使用该类函数可以对字符串进行其他种类的操作。下面分别为
    读者作介绍。
•   1.join:将数组转化为字符串
•   string join(string glue,array pieces)
•   2.htmlspecialchars:转换字符串中的特殊符号为HTML标记
•   string htmlspecialchars(string string[,int quote_style[,string
    charset]])
•   3.strrev颠倒字符串
•   string strrev(string string)
•   4.substr_count:计算一个字符串在另一个字符串中出现的次数
•   int substr_count(string haystack,string needle[,int offset[,int
    length]])
•   5.strripos:查找字符在字符串中首次出现的位置
•   int stripos(string haystack, string needle[,int offset])
•   6.md5:对一个字符串进行MD5加密
•   string md5(string str[,bool raw_output])
8.3 数组的处理
• 作为一种重要的数据类型,数组的处理在PHP的数
  据处理中也占有相当重要的比重。由于数组可以
  作为多种数据的载体,所以能否快速、高效的对
  数组进行处理,是能否进行高效的PHP网络编程的
  一个重要条件。本节就来向读者介绍在PHP中如何
  对数组进行各种种样的处理。
8.3.1 建立数组
• 在本书第4章介绍数组变量一节中已经介绍过:数组是一种
  特殊的变量,而数组的建立通常有两种方法。一种是直接
  给数组的元素赋值,如以下代码所示。
• $array[0]=0;
• $array[1]=1;
• ……
• $array[n]=n;
• 而另一种方法则是通过函数array()来一次给所有数组成员
  赋值。该函数的使用格式如下:
• array array([mixed...])
• 其中参数可以用=>运算符给出索引,以键值对的形式出现。
  数值键值可以省略,但字符键值则不能省略。关于数组的
  建立,在第4章相关内容中已经介绍过,这里就不再赘述。
8.3.2 数组长度
• 在使用数组时,获取数组的长度信息是进行数组
  处理的一个重要前提。在PHP中可以通过函数:
  count()来获取数组的长度。count()函数的使用
  格式如下:
• int count(array array[,int mode])
• 该函数将返回参数array所指代的数组的元素个数。
  可选参数mode自PHP4.2.0有效,如果将该值设为1,
  函数将递归地对数组进行计数,这对计算多维数
  组的长度尤其有效。该参数默认值为0。
• 对于空数组,函数count()将返回0。
8.3.3 数组的键值
• 数组的键即数组的下标,是指在中括号中对一个
  数组元素的引用;数组的值则是指某一个数组元
  素的值。通常情况下,数组的键与值都是成对出
  现。PHP既支持数字键名也支持字符键名。本节来
  介绍用于数组的键值对操作的数组函数。
• array array_keys(array input[,mixed
  search_value[,bool strict]])
• 该函数将返回指定数组的所有键名,参数input为
  指定需要获取键名的数组;可选参数
  search_value为指定的键名,如果指定该值,则
  只返回该值的键名;可选参数strict进行全等
  (===即值与类型都相等)比较。
8.3.4 数组的排序
•   数组是一组变量的集合,所以对数组中所有元素的排序就成为数
    组操作中一项必不可少的内容。通常的编程工具对数组进行排序
    都是采用手工的方法。不管是直接插入排序、希儿排序、冒泡排
    序、快速排序、直接选择排序等等排序法都需要手动编程来实现。
    而PHP中则为数组的排序专门提供了一组函数。合理使用这些排序
    函数可以使用户在最短时间内完成对数组排序的操作。PHP中的数
    组排序函数如表所示。
8.3.5 移动数组指针
• 数组是变量的集合,每一个数组中都有很多的元
  素。数组指针是指向当前数组元素的标记。当一
  个数组被建立时,数组指针指向数组的第一个元
  素。而有时需要对数组的指针进行移动操作,这
  时就需要使用到移动数组指针的一类函数。PHP中
  的移动数组指针函数如表所示。
8.3.6 移除重复的值
• 实际编程过程中可能会遇到各种各样的问题。对
  数组操作也是一样,客户的要求千差万别。所以
  移除数组中重复的值也是可能遇到的数组操作之
  一。在PHP中要移去数组中重复的值,只需要通过
  使用系统函数array_unique()即可完成要求。
• array array_unique(array array)
8.3.7 合并数组
• 将两个或者两个以上的数组合并为一个数组也是
  数组操作中可能遇到的问题之一。PHP中可以通过
  函数array_merge()来实现这一操作。
• array array_merge(array array1[,array
  array2[,array...]])
8.3.8 检查数组中是否存在某个值
•   在对数组进行处理时,判断某个值是否存在于数组中是很有必要的。如将
    一组用户作为一个数组,某一个用户作为数组元素,就可以通过对数组的
    此类操作来判断某个用户是否存在于某个群中。
•   在PHP中可以通过函数in_array()来实现该要求。该函数的使用格式如下
    所示。
•   bool in_array(mixed needle,array haystack[,bool strict])
•   该函数将对参数组haystack中是否存在值needle进行判断,并根据结果返
    回布尔值。如果有该值,函数返回True,反之则返回False。其中可选参
    数strict如果设置为True,则函数还会对参数的类型进行判断,该值默认
    为False。
8.3.9 检查数组中的值出现的次数
•   上一节介绍了如何判断数组中是否存在某个值,这一节再来介绍下如何判
    断数组中的值出现的次数。对数组中的值出现次数进行判断,是进行数组
    处理过程中有可能遇到的重要的数组操作之一。对于通常的编程语言,需
    要对数组进行遍历,然后给每个值计数,统计出每个值的出现次数。而在
    PHP中所有这些操作都可以通过调用一个内部函数来完成。
•   array array_count_values(array input)
•   该函数将会统计给定数组中的所有值出现的次数。函数将会返回一个数组,
    新数组的键为原数组中的值,而新数组的值则为原数组值出现的次数。
8.4 本章小结
• 本章向读者介绍了PHP中最重要的三种数据类型:
  数值型、字符型、数组型的操作。这些数据类型
  的处理是构成所有PHP程序最重要的基石。所以本
  章的内容对于读者能否学好PHP将起到至关重要的
  作用。
• 本章详细介绍了PHP中常见的对数值、字符以及数
  组的操作,合理利用其中介绍的系统函数可以有
  效提高工作效率。虽然本章内容不少,但只是PHP
  中所有数据操作中的有代表性的一部分。至于更
  多的数据处理相关内容,读者可以在实际工作中
  作合实际,参考下相关的手册,了解更多与数据
  处理相关的内容。

				
DOCUMENT INFO
Shared By:
Categories:
Tags:
Stats:
views:4
posted:6/14/2010
language:
pages:31