博客列表 >PHP基础知识篇(二)

PHP基础知识篇(二)

飞鸿先森的博客
飞鸿先森的博客原创
2017年10月12日 13:02:23866浏览

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,反之则返回值小于0
 2)按自然排序进行字符串比较
      

  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 tm
 2)单词定界符(\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或m
 5)连字符(-)
      [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.统计数组元素个数
     使用count()函数对数组中的元素个数进行统计
     

int count(mixed array [,int mode])

     参数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为输入的数组


声明:本文内容转载自脚本之家,由网友自发贡献,版权归原作者所有,如您发现涉嫌抄袭侵权,请联系admin@php.cn 核实处理。
全部评论
文明上网理性发言,请遵守新闻评论服务协议