PHP基础知识篇(二)
来源:互联网 发布:阿里云架设dnf 编辑:程序博客网 时间:2024/04/28 01:29
18.字符串操作
trim()函数:去除字符串收尾空格和特殊字符,返回去掉空格和特殊字符后的字符串string trim(string str [,string charlist]);
参数str是要操作的字符串对象,参数charlist为可选参数,指定需要从字符串中删除哪些字符,如果不设置该参数,则所有可选字符都被删除,可选值如下\0 null,空值\t tab,制表符\n 换行符\x0B 垂直制表符\r 回车符"" 空格
$str = "\r\r(:这是一个字符串。 你看出来了吗:) ";echo trim($str).'<br>';echo trim($str,"\r\r(::)");
ltrim()函数:去除字符串左边的空格和特殊字符string ltrim(string str[,string charlist]);
rtrim()函数:去除字符串右边的空格和特殊字符string rtrim(string str[,string charlist]);
19.字符串转义、还原
手动转义字符,使用“\”echo 'select * from book where bname=\'PHP从入门到精通\'';
自动转义字符函数string addslashes(string str)
自动还原使用addslashes函数转义的字符串函数string stripslashes(string str)
所有数据在插入数据库之前,最好应用addslashes()函数进行字符转义,以免特殊字符未经转义而在插入数据库时出现错误。下面函数实现对字符串中的指定字符charlist前加上反斜杠“\”进行转义
string addcslashes(string str,string charlist)
20.获取字符串的长度,汉字占两个字符,数字、英文、小数点、下划线和空格占一个字符
int strlen(string str)
21.截取字符串
string substr(string str,int start[,int length])
参数str:指定字符串对象 参数start:指定开始截取字符串位置,如果参数为负数,则从字符末尾开始截取 参数length:可选参数,指定截取字符串的个数,如果为负数,则表示取到倒数第length个字符注意:start的位置是从0开始计算的,如果使用该函数截取中文字符串,如果截取的长度是奇数(针对GB2312编码),那么会导致截取后的字符串出现乱码(GB2312一个汉字两个字节,UTF-8一个汉字三个字节)。可以使用字符串截取来输出一段文字的部分内容,多余的部分使用省略号显示 $str = '现在一般说来,日本人在打电话给他人时,第一句会先报出自己的姓氏,再问对方是不是某某家,若没打错,才报出要找某某人或有某某事等目的。';
if (strlen($str)>30) { echo substr($str,0,30).'...'; //超过30个字符,用省略号显示}else { echo $str;}
22.比较字符串
1)按字节进行字符串比较 int strcmp(string str1,string str2):区分字符的大小写 int strcasecmp(string str1,string str2):不区分字符大小写 参数str1与参数str2指定要比较的两个字符串,如果相等则函数返回值为0,如果参数str1大于str2,则返回值大于0,反之则返回值小于02)按自然排序进行字符串比较 int strnatcmp(string str1,string str2):区分字符的大小写 int strnatcasecmp(string str1,string str2):不区分字符的大小写 参数str1与参数str2指定要比较的两个字符串,如果相等则函数返回值为0,如果参数str1大于str2,则返回值大于0,反之则返回值小于0,本函数区分字母大小写3)指定从源字符串的位置开始比较 int strncmp(string str1,string str2,int len):区分字符的大小写 参数str1:指定参与比较的第一个字符串对象 参数str2:指定参与比较的第二个字符串对象 参数len:必要参数,指定每个字符串中参与比较字符的数量 比较字符串中的前n个字符,如果相等则函数返回值为0,如果参数str1大于str2,则返回值大于0,反之则返回值小于0
23.检索字符串
1)使用strstr()函数查找指定的关键字 string strstr(string haystack,string needle):区分字符的大小写 参数haystack:必要参数,指定从哪个字符串中进行搜索 参数needle:必要参数,指定搜索的对象,如果参数是一个数值,那么将搜索与这个数值的ASCII值相匹配的字符2)strchr()函数与其正好相反,该函数从字符串后序的位置开始检索子串的
24.使用substr_count()函数检索子串出现的次数
int substr_count(string haystack,string needle)参数haystack:指定的字符串参数needle:指定待查找的子字符串
25.正则表达式
1)行定位符(^和$) “^”表示行的开始,“$”表示行的结尾 ^tm 该表达式匹配tm开始的字符串,如tm equal Tomorrow Moon $tm 该表达式匹配tm结尾的字符串,如equal Tomorrow Moon tm2)单词定界符(\b、\B) \b 匹配的是一个完整的单词,而不是单词的一部分 \B 匹配的不是一个完整的单词,而是单词的一部分,如\Btm\B可匹配html、utmost等3)字符类([]) 正则表达式区分大小写,如果要忽略大小写,可使用“[]”,一个方括号只能匹配一个字符 要匹配tm且不区分大小写:[Tt][Mm] POSIX风格的预定义字符类 [:digit:] 十进制数字集合。等同于[0-9] [[:alnum:]] 字母和数字的集合。等同于[a-zA-Z0-9] [[:alpha:]] 字母集合。等同于[a-zA-Z] [[:blank:]] 空格和制表符 [[:xdigit:]] 十六进制数字 [[:punct:]] 特殊字符集合。包括键盘上所有特殊字符,如!@#$?等 [[:print:]] 所有的可打印字符(包括空白字符) [[:space:]] 空白字符(空格、换行符、换页符、回车符、水平制表符) [[:graph:]] 所有的可打印字符(不包括空白字符) [[:upper:]] 所有大写字母,[A-Z] [[:lower:]] 所有小写字母,[a-z] [[:cntrl:]] 控制字符4)选择字符(|) 可理解为“或” 要匹配tm且不区分大小写:[Tt][Mm] 也可写成 T|tM|m 意思是以字母T或t开头,后面接一个字母M或m5)连字符(-) [a,b,c,d...A,B,C,D...]可使用连字符简单写成[a-zA-Z],匹配规则的变量名(以字母或下划线开头)6)排除字符([^]) [^a-zA-Z]匹配不以字母和下划线开头的变量名7)限定符(?*+{n,m}) ? 匹配前面的字符零次或一次 colou?r可匹配colour和color + 匹配前面的字符一次或多次 goo+gle可匹配google到goooooo...gle * 匹配前面的字符零次或多次 goo*gle可匹配gogle到gooooo...gle {n} 匹配前面的字符n次 go{2}gle只匹配google {n,}匹配前面的字符最少n次 go{2,}gle可匹配google到goooo...gle {n,m}匹配前面的字符最少n次,最多m次 employe{0,2}可匹配employ、employe、employee三种情况8)点号字符(.) 点字符可匹配换行符外的任意一个字符 ^s.t$可匹配sat、sit、set等9)转义字符(\) 与PHP中使用的转义字符类似10)反斜杠(\) 反斜杠显示的不可打印字符 \a 警报 \b 退格 \e Escape \f 换页符 \n 换行符 \r 回车符 \t 水平制表符 \xhh 十六进制代码 \ddd 八进制代码 \cx control-x的缩写,匹配由x指明的控制字符,其中x是任意字符 反斜杠指定的预定义字符集 \d 任意一个十进制数字,相当于[0-9] \D 任意一个非十进制数字 \s 任意一个空白字符(空格、换行符、换页符、回车符、水平制表符) \S 任意一个非空白字符 \w 任意一个单词字符,相当于[a-zA-Z0-9] \W 任意一个非单词字符 反斜线断言的限定符 \b 单词定界符,用来匹配字符串中的某些位置 \B 非单词定界符序列 \A 总是能够匹配待搜索文本的起始位置 \Z 表示在未指定任何模式下匹配的字符,通常是字符串的末尾位置,或者是在字符串末尾的换行符之前的位置 \z 只匹配字符串的末尾,而不考虑任何换行符 \G 当前匹配的起始位置11)括号字符(()) 小括号的第一个作用就是改变限定符的作用范围 (thir|four)th 匹配thirth和fourth,如果不是用括号,就变成了匹配thir和fourth 小括号的第二个作用是分组,也就是子表达式。如(\.[0-9]{1,3}){3},就是对分组(\.[0-9]{1,3})进行重复操作12)反向引用 反向引用,就是依靠子表达式的“记忆”功能来匹配连续出现的字符串或字母。如匹配连续两个it,首先将单词it作为分组,然后加上“\1”即可 (it)\1
26.声明数组
array array[mixed...]参数mixed的语法为key=>value,多个mixed之间使用逗号隔开,分别定义索引和值,索引可以是字符串或数字。如果省略了索引,则自动产生从0开始的整数索引。如果索引是整数,则下一个产生的索引将是目前索引最大的整数索引+1.如果定义了两个一样的索引,则后定义的覆盖先定义的数组中的各数据元素的数据类型可以不同,也可以是数组类型。当mixed是数组类型时,就是一个二维数组
27.数字索引数组
PHP数字索引一般表示数组元素在数组中的位置,它由数字组成,下标从0开始,数字索引数组默认索引值从数字0开始,不需要特别指定。
28.关联数组
关联数组的键名可以是数字和字符串混合的形式,而不像数字索引数组的键名只能为数字。在一个数组中,只要有一个键名不是数字,那么这个数组就称为关联数组。如果键名是一个字符串,访问数组时需要给索引或者键名加上定界修饰符——单引号或双引号
29.输出数组
使用echo语句、print语句输出数组中的某一元素,通过print_r()函数可以将数组结构进行输出。语法格式如下bool print_r(mixed expression)如果参数expression为普通整型、字符型或实型变量,则输出该变量本身。如果为数组,则按键值和元素的顺序输出该数组中的所有元素。
30.数组的构造
1)一维数组: 当一个数组的元素是变量时,称这个数组为一维数组,声明一维数组的一般形式是: 类型说明符 数组名[常量表达式]; 例:
$arr = array(1=>"Java",2=>"C语言",3=>"PHP");
2)二维数组: 一个数组的元素如果是一维数组,则称这个数组是二维数组。
$arrstr = array( "书籍"=>array("语文","数学","英语"), "体育用品"=>array("m"=>"足球","n"=>"篮球"), "水果"=>array("橙子",8=>"葡萄","苹果"));print_r($arrstr);
输出:Array ( [书籍] => Array ( [0] => 语文 [1] => 数学 [2] => 英语 ) [体育用品] => Array ( [m] => 足球 [n] => 篮球 ) [水果] => Array ( [0] => 橙子 [8] => 葡萄 [9] => 苹果 ) )
31.遍历数组
1)使用foreach结构遍历数组 遍历数组最常用的方法是使用foreach结构。foreach结构并非操作数组本身,而是操作数组的一个备份。
$arr = array("1"=>"数据结构","2"=>"算法","3"=>"C语言","4"=>"PHP");foreach ($arr as $val){ echo $val;}上面的代码中,PHP为数组$arr的每个元素依次循环执行循环体(echo语句),将当前数组元素赋值给$val
2)使用list()函数遍历数组 list()函数是把数组中的值赋给一些变量。与array()函数类似,list()函数不是真正的函数,而是一种语言结构。list()函数仅能用于数字索引且索引值从0开始的数组。语法格式如下: void list(mixed...) 参数mixed为被赋值的变量名称。
32.字符串与数组的转换
1)使用explode()函数将字符串转换成数组 array explode(string separator,string string [,int limit]) 函数将字符串以指定的字符串或字符(separator)切开,返回由字符串组成的数组,每个字符串都是指定字符串string的一个子串。 如果设置了limit参数,则返回的数组包含最多limit个元素,而最后那个元素包含string的剩余部分 如果separator为空字符串(""),explode()函数将返回false 如果separator所包含的值在string中找不到,那么explode()函数将返回包含string单个元素的数组 如果参数limit是负数,则返回除了最后的limit个元素外的所有元素。 2)使用implode()函数将数组转换成一个新字符串 string implode(string glue,array pieces) 参数glue是字符串类型,指要传入的分隔符,参数pieces是数组类型,指被传入的要合并元素的数组变量名称。
33.统计数组元素个数
int count(mixed array [,int mode])
使用count()函数对数组中的元素个数进行统计参数array:必要参数。输入的数组参数mode:可选参数,其值为0或COUNT_RECURSIVE(1)。如选中此参数,本函数将递归地对数组计数。对计算多维数组的所有单元尤其有用,此参数的默认值为0
34.查询数组中指定元素
array_search(mixed needle,array haystack[,bool strict])
参数needle指定在数组中搜索的值参数haystack指定被搜索的数组参数strict为可选参数,如果为true,还将在数组中检查给定值的类型
35.获取数组中最后一个元素
mixed array_pop(array array)
通过函数array_pop()获取数组中的最后一个元素参数array为输入的数组array_pop函数获取并返回数组的最后一个元素,并将数组的长度减1,如果数组为空(或者不是数组),将返回null
36.向数组中添加元素
int array_push(array array,mixed var[,mixed...])
通过函数array_push()向数组中添加元素。参数array为指定的数组参数var为压入数组中的值
37.删除数组中重复元素
array array_unique(array array)
通过函数array_unique()删除数组中重复元素参数array为输入的数组
阅读全文
0 0
- PHP基础知识篇(二)
- php基础知识(二)
- PHP基础知识(二)
- PHP基础知识(二)
- PHP的基础知识(二)
- PHP学习笔记(二)基础知识结束
- php基础知识 二
- php入门基础知识二
- PHP基础知识篇(一)
- PHP 基础知识总结二(流程控制语句)
- PHP基础入门(二)---入门基础知识必备
- PHP学习笔记(1)--基础知识篇
- 基础知识 (php)
- PHP基础知识(一)
- PHP基础知识(三)
- PHP基础知识(1)
- php基础知识(2)
- C++基础知识 二篇
- Actionerror和Actionmessage标签的用法
- Oracle数据库与MySQL数据库的区别
- 导入excel(xls格式, xlsx格式大部分都把类似HSSF替换成XSSF就行了,看api)
- >Struts2由浅入深学习视频教程(46集)
- 作业1平均数1
- PHP基础知识篇(二)
- js实现map
- Linux 虚拟地址,逻辑地址,物理地址
- Spring 源码分析《Bean的获取与创建流程》
- Unity打包平台设置
- bootstrap的基本结构
- Ubuntu相关问题解决方法
- 第7周项目3-负数把正数赶出队列
- HDU 4433 DP