zff第7章PHP的数据处理.ppt_第1页
zff第7章PHP的数据处理.ppt_第2页
zff第7章PHP的数据处理.ppt_第3页
zff第7章PHP的数据处理.ppt_第4页
zff第7章PHP的数据处理.ppt_第5页
已阅读5页,还剩40页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第7章 PHP的数据处理,烟台南山学院软件工程学院,第7章 PHP的数据处理,本章主要内容,怎样判断数据类型 PHP中常用的数学函数 PHP中常用的字符串函数 PHP中常用的数组函数,第7章 PHP的数据处理,怎样判断数据类型,第7章 PHP的数据处理,数据类型NULL,NULL是PHP中一个特殊的数据类型,它表示变量没有值。NULL类型唯一可能的值就是NULL。 在下列情况下,一个变量被认为是NULL: 变量赋值为NULL; 变量尚未赋值; 变量已经被定义,但又被unset()释放。 布尔值,NULL和资源在被打印时,也会被PHP转换为可显示的实型值或字符串。 布尔值的False输出为空,True输出为1;NULL输出为空。,第7章 PHP的数据处理,举例,“; if(!is_bool($num1) echo $num1.“不是布尔型!“; if(is_float($num2) echo $num2.“是浮点型“; if(!is_int($num2) echo $num2.“不是整型!“; if(is_numeric($string1) echo $string1.“是数字“; if(is_object($bar) print_r($bar); echo “是OBJCET“; if(!is_scalar($arr) echo $arr.“不是标量!“; if(is_string($string1) echo $string1.“是字符串“; if(isset($string1) echo $string1.“有值“; unset($string1); if(!isset($string1) echo “变量string1无值或者值为Null!“; if(!isset($b) echo $bool.“无值或者值为Null!“; ?,第7章 PHP的数据处理,PHP中常用的数学函数,PHP中常用的数学函数有: 数学计算函数 数学三角函数 最值函数 产生随机数函数 进制转换函数 其他数学函数,第7章 PHP的数据处理,数学计算函数,第7章 PHP的数据处理,举例,“; echo “0的绝对值是:“; echo abs(0).“; echo “不小于5.5的最小整数是:“; echo ceil(5.5).“; echo “不小于-8.2的最小整数是:“; echo ceil(-8.2).“; echo “e的3次方是:“; echo exp(3).“; echo “不大于3.2的最大整数是:“; echo floor(3.2).“; echo “不大于-8.8的最大整数是:“; echo floor(-8.8).“; echo “100以10为底的对数为:“; echo log10(100).“; echo “9的平方根是:“; echo sqrt(9).“; ?,第7章 PHP的数据处理,数学三角函数,第7章 PHP的数据处理,举例,“; echo “270度角的正弦值为:“; echo sin(pi()/2*3).“; echo “60度角的余弦值为:“; echo cos(pi()/3).“; echo “0度角的余弦值为:“; echo cos(0).“; echo “45度角的正切值为:“; echo tan(pi()/4).“; echo “90度角的正切值为:“; echo tan(pi()/2).“; echo “30度角的反正弦值为:“; echo asin(pi()/6).“; echo “60度角的反余弦值为:“; echo acos(pi()/3).“; echo “45度角的反正切值为:“; echo atan(pi()/4); ?,第7章 PHP的数据处理,很有用的最值函数,PHP中的最值函数有以下两种: mixed max(number arg1,number arg2),求最大值函数,返回参数中数值最大的值。若仅有一个参数且为数组,max()返回该数组中最大的值。若第1个参数是整数、字符串或浮点数,则至少需要两个参数而max()返回这些值中最大的一个。可以比较无限多个值。 mixed min(number arg1,number arg2),求最小值函数。规则同max()函数。,第7章 PHP的数据处理,举例,“; echo “数组array(2,4,5)中最大的值是:“; echo max(array(2, 4, 5).“; echo “0与“hello”中最大的是:“; echo max(0, hello).“; echo “hello”与0中最大的是:“; echo max(hello, 0).“; echo “-1与“hello”中最大的是:“; echo max(-1, hello).“; echo “数组array(2,4,8)与数组array(2,5,7)中最大的是:“; $val=max(array(2,4,8), array(2,5,7); for($i=0;$i“; echo “数组array(2,5,7)与“string”和42中最大的是:“; $val = max(string, array(2, 5, 7), 42); for($i=0;$i,第7章 PHP的数据处理,说明,两个函数都是从左向右比较。 PHP 将非数值的 string 当成 0 。如果相同的两个值比较优先返回左边的值(见上面两个例子中的HELLO 字符串与0 比较的情况)。 如果同时给出数组和非数组作为参数,则数组被认为是最大的。所以Max()函数必定返回数组;而Min()函数必定不返回数组。,第7章 PHP的数据处理,产生随机数函数,PHP中的随机数函数 int rand( int min, int max):产生一个随机数。随机数的范围在参数min 与max 之间。如果没有提供可选参数 min 和 max,rand() 返回 0 到 RAND_MAX 之间的伪随机整数。 在某些平台下(例如 Windows)RAND_MAX 只有 32768。如果需要的范围大于 32768,那么指定 min 和 max 参数就可以生成大于 RAND_MAX的数了。,第7章 PHP的数据处理,举例,“; echo “生成无参数随机数1:“; echo rand(); echo “; echo “生成无参数随机数2:“; echo rand(); echo “; echo “生成四位随机数:“; echo rand(1000,9999); ?,第7章 PHP的数据处理,进制转换函数,PHP 中的进制转换函数一共有以下6种:,十进制可以直接和二进制、八进制、十六进制进行转换。同时二进制、八进制、十六进制也可以直接转换为十进制。但是它们之间的转换,就只有通过十进制数来进行了。,第7章 PHP的数据处理,举例,“; echo “十进制数“.$dec.“对应的二进制数为:“; echo decbin($dec).“; echo “十进制数“.$dec.“对应的十六进制数为:“; echo dechex($dec).“; echo “八进制数“.$oct.“对应的十进制数为:“; echo octdec($oct).“; echo “二进制数“.$bin.“对应的十六进制数为:“; echo dechex(bindec($bin).“; echo “八进制数“.$oct.“对应的二进制数为:“; echo decbin(octdec($oct).“; echo “十六进制数”.$hex.“对应的八进制数为:“; echo decoct(hexdec($hex).“; ?,第7章 PHP的数据处理,任意进制转换,string base_convert ( string number, int frombase, int tobase ):返回一字符串,包含 number 以 tobase 进制的表示。number 本身的进制由 frombase 指定。frombase 和 tobase 都只能在 2 和 36 之间(包括 2 和 36)。高于十进制的数字用字母 a-z 表示,例如 a 表示 10,b 表示 11 以及 z 表示 35。,“; echo “八进制数“.$oct.“转为二进制数为:“; echo base_convert($oct,8,2).“; echo “十六进制数“.$hex.“转为八进制数为:“; echo base_convert($hex,16,8); ?,第7章 PHP的数据处理,float hypot ( float x, float y ):计算一直角三角形斜边的长度。该函数根据直角三角形的两直角边长度 x 和 y 计算其斜边的长度。或者是从标点(x,y)到原点的距离。该函数的算法等同于sqrt(x*x+y*y)。 float pi():此函数无参数,返回圆周率的近似值,返回值的 float 精度是由 php.ini中的precision指令确定。也可以使用系统预定义常量:M_PI来代替这个函数。 string number_format(float number,int decimals, string dec_point,string thousands_sep):该函数用来将浮点类型的参数number格式化。若没有参数decimals,则返回的字符串只取整数部分,加了此参数则按照该参数指定的小数点位数返回。参数dec_point表示小数点的表示方法,默认值是“.”,若需要转换成其他的小数点就可以修改这个参数的格式。参数thousands_sep为整数部分每3位的分隔符号,默认值是逗号“,”。,其他数学函数,第7章 PHP的数据处理,举例,“; echo “另一直角边为“.$b.“,则此三角形的斜边为:“; echo hypot($a,$b).“; echo pi().“; echo M_PI.“; $number=1234.56; $france_format_number=number_format($number,2, ); echo $france_format_number.“; $english_format_number=number_format($number,2,.,); echo $english_format_number.“; echo “此圆的面积为:“; echo number_format(pi()*$r*$r,2).“平方Cm“; ?,第7章 PHP的数据处理,取得字符串长度,int strlen(string str):取得字符串的长度。参数str为字符串变量,返回值为表示字符串长度的整型变量。空字符串则返回“0”。,“; echo “字符串“.$s2.“的长度为:“; echo strlen($s2).“; echo “中文字符串“.$s3.“的长度为:“; echo strlen($s3); ?,第7章 PHP的数据处理,输出字符串,echo语句可以打印变量和内容,其他可以是系统变量,也可以是HTML代码,也可以是一个PHP表达式。 bool print( string arg ):输出字符串。参数arg为字符串变量或者常量。函数返回一个布尔值。当执行成功时返回True,反之返回False。 bool printf(string format , mixed args , mixed .):将字符串格式化输出。输出格式依照参数format 的内容,具体内容见下面的sprintf()格式化字符串函数。,第7章 PHP的数据处理,“; $foo = “foobar“; $bar = “barbaz“; print “foo is $foo“; echo “foo is $foo“; print foo is $foo; print $foo; ?,第7章 PHP的数据处理,bool print_r($array/$var) 它既可以打印数组内容,也可以打印普通的变量。 string sprintf(string format,mixed args,mixed):格式化字符串。参数format 是转换的格式,以百分比符号%开始到转换字符为止。 格式的内容按照顺序如下: 填空字元。0表示空格填0,空格是默认值。 对齐方式。默认值为右对齐,负号表示向左对齐。 栏位宽度。为最小宽度。 精确度。指在小数点后的浮点数位数。,第7章 PHP的数据处理,第7章 PHP的数据处理,的字符串处理,“; $isodate = sprintf(“%04d-%02d-%02d“, $year, $month, $day); echo $isodate; ?,array(“red“,“blue“,“black“),1=array(1,2,3,4,5),array(“你好“,“他好“,“大家好“); print_r($sting11); /输出数组的某一个元素 for($j=0;$j“; print_r($string); /输出数组的第二种方法 ?,第7章 PHP的数据处理,相关说明: echo、print、printf可以打印变量内容,但不能显示数组及系统超级变量数组。print_r不仅可以打印数组、标量变量,还可以打印对象的内容 echo是一个语句,单纯显示文本信息或变量值,没有返回值。print(包括printf、sprintf)则是一个函数,可以返回一个布尔值 echo语句没有返回值,但是可以使用.(小圆点)来拼接字符串,而print则不可以。如果单纯做显示,使用echo的效率要高一些。,第7章 PHP的数据处理,截取字符串,string substr(string str,int start,int length):从str中取出第start个字符开始length长度的子串。若length为空,则从start截取到字符串结束。注意:字符串str中的字符正数从0开始,负数从-1开始。,“; echo “从3开始的5个字符为:“; echo substr($s,3,5); echo “; echo “字符串“.$s2; echo “; echo “从2开始的字符为:“; echo substr($s2,2); echo “; echo “字符串“.$s2; echo “; echo “从-5开始的字符为:“; echo substr($s2,-5); echo “; echo “字符串“.$s2; echo “; echo “从2开始到-6的字符为:“; echo substr($s2,2,-6); echo “; echo “从-3开始到-8的字符为:”;echo substr($s2,-3,-8); /有值吗? ?,第7章 PHP的数据处理,按特定字符切开字符串,array explode(string separator,string str,int limit),切开字符串函数。本函数将字符串依指定的字符或字符串separator 分开,如果使用了 limit 参数则返回的数组包含最多limit个元素,而最后那个元素将包含str的剩余部分。函数的返回值是以返回字符串为元素的字符串数组。如果 separator 为空字符串(“),explode() 将返回 FALSE。如果 separator 所包含的值在str中找不到,那么 explode() 将返回包含str单个元素的数组。如果 limit 参数是负数,则返回除了最后的 limit 个元素外的所有元素。 array split(string pattern,string str,int limit):该函数返回一个字符串数组,每个单元为str经区分大小写的正则表达式pattern作为边界分割出的子串。如果设定了limit,则返回的数组最多包含limit个单元,而最后一个单元包含str中剩余的所有部分。如果出错,则split函数返回FALSE。 string strtok(string str,string token):根据token中的字符将str分隔开。若只有一个参数,表示截取当前字符串。,第7章 PHP的数据处理,举例,“; echo “使用explode方法分割开:“; $temp=explode(“t“,$s); for($i=0;$i“; echo “字符串“.$s; echo “; echo “使用explode方法加上参数2分割开:“; $temp=explode($s2,$s,2); for($i=0;$i“; echo “字符串“.$s; echo “; echo “使用split方法分割开:“; $temp=split(|,$s); for($i=0;$i“; echo “字符串“.$s; echo “; echo “使用strtok方法分割开:“; $temp=strtok($s,$s2); while($temp) echo $temp.“,“; $temp=strtok(“|“); ?,说明:split()函数需要使用正则表达式规则;而strtok()函数返回的只是字符串而不是字符串数组;而使用explode()函数切开字符串是3 个函数中最简单易用的。,第7章 PHP的数据处理,去除字符串中的特殊符号,string strip_tags(string str, string allowable_tags) :去掉字符串str 中的HTML 及PHP 标记,将处理之后的字符串作为函数的返回值。若是字串的HTML 及PHP 标签原来就有错,如少了大于号,则也会传回错误。,我爱北京天安门!“; $t=strip_tags($s); echo $s; echo “; echo $t; echo “; $text = Test paragraph. Other text; echo strip_tags($text); echo strip_tags($text, ); /允许标记 ?,第7章 PHP的数据处理,转换字符串中的特殊符号为HTML标记,string htmlspecialchars(string str,int quote_style,string charset):将特殊字符转化成HTML格式。第二个参数的可选值:(1)ENT_COMPAT - 默认。仅编码双引号。 (2)ENT_QUOTES - 编码双引号和单引号。 (3)ENT_NOQUOTES - 不编码任何引号。 第3个参数默认值为ISO-8859-1 (西欧字符集)。,“; echo htmlspecialchars($str, ENT_QUOTES); echo “; echo htmlspecialchars($str, ENT_NOQUOTES); ?,第7章 PHP的数据处理,加入/去掉斜线,string addslashes(string str):使用反斜线引用字符串,该字符串为了数据库查询语句等的需要在某些字符前加上反斜线。这些字符是单引号、双引号、反斜线与NULL字符。 string stripslashes(string str):去掉反斜线字符。 这两个函数的使用与PHP解释器的设置有关。 magic_quotes_gpc=on;可不对输入和输出数据库的字符串数据作addslashes()和stripslashes()操作,数据也会正常显示。 magic_quotes_gpc=off;必须使用addslashes()对输入数据进行处理,但并不需要使用stripslashes()格式化输出。,第7章 PHP的数据处理,两个字符串比较,int strcmp(string str1,string str2):完全比较字符串。如果str1小于str2,返回负数;如果str1大于str2,返回正数;如果两个字符串完全一致即字符串相等则返回0。,strcmp示例“; if(strcmp(cheng,wei) echo string “cheng“ and “wei“ is not equals.; echo “; $str1=“Hello“; $str2=“hello“; if(strcmp($str1,$str2)!=0) echo “此函数是区分大小写的!“; ?,第7章 PHP的数据处理,改变字符串的大小写,string strtolower(string str):把字符串str中的所有大写字母转换为小写字母,返回转换后的新字符串。 string strtoupper(string str):把字符串str中的所有小写字母转换为大写字母,返回转换后的新字符串。,“; echo “原字符经过strtolower()处理后的值为:“; echo $temp1.“; echo echo “原字符经过strtoupper()处理后的值为: “; echo $temp2; ?,第7章 PHP的数据处理,计算数组的元素个数,int count(mixed var):参数可以是数组或者整数变量。如果参数是数组则返回数组元素的个数;如果参数为整数则分两种情况:如果整数变量还没有值则返回“0”,如果已经赋值则返回“1”。此函数还称为sizeof()。,“; $b0 = 7; $b5 = 9; $b10 = 11; $result = count($b); echo $result.“; $result = count(null); /如果var是 NULL 则结果是0 echo $result.“; $result = count(false); echo $result; ?,第7章 PHP的数据处理,对数组排序及逆排序,void sort(array arr):对数组进行排序,使数组按照从小到大的顺序重新排列。注意: 本函数为arr中的单元赋予新的键名。这将删除原有的键名而不仅是重新排序。 void rsort(array arr):同sort()函数类似,只是按从大到小的顺序重新排列数组。,“; echo “数组temp经sort函数处理后的顺序为:“; sort($temp); print_r($temp);echo “; echo “数组temp1经rsort函数处理后的顺序为:“;rsort($temp1); print_r($temp1); ?,第7章 PHP的数据处理,数组自定义排序,void usort(array arr,function cmp_function):对数组进行排序,使数组按照用户自定义比较函数所规定的顺序重新排列。其中,比较函数cmp_function()必须在第一个参数被认为小于、等于或大于第二个参数时返回0的整数。, $value) echo “$key= $valuen“; ?,第7章 PHP的数据处理,移动数组指针,mixed current(array arr):传回数组当前指针指向的元素,并不移动指针。 mixed end(array arr):将数组的内部指针移动到最后一个单元并返回其值。 mixed next(array arr):返回数组内部指针指向的下一个单元的值。 mixed prev(array arr):返回数组内部指针指向的前一个单元的值。 mixed reset(array arr):将 array 的内部指针倒回到第一个单元并返回第一个数组单元的值。 注意:如果内部指针指向超出了单元列表的末端,或数组包含有空的单元(0 或者 “”,空字符串)则以上函数函数在碰到这个单元时都返回False。,第7章 PHP的数据处理,举例,“; $mode = next($transport); echo $mode.“; $mode = next($transport); echo $mode.“; $mode = prev($transport); echo $mode.“; $mode = end($transport); echo $mode.“; $mode = reset($transport); echo $mode; ?,第7章 PHP的数据处理,移去数组中重复的值,array array_unique(array arr):移去数组中重复的值,并返回结果数组。当几个数组元素的值相等时,只保留第一个元素,其他的元素被删除。返回的数组中键名不变。, “green“, “red“, “b“ = “green“, “blue“, “red“); $result = array_unique($input); print_r($result); ?,第7章 PHP的数据处理,合并多个数组,array array_merge(array arr1,array arr2,array arr3):对多个数组进行合并。 合并时遵循的规则:若合并时两个数组有相同的键名时,新的字符键名的值替换以前的字符键名的值,而数字键名的值只作为新值

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论