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为输入的数组
原创粉丝点击