第4章 字符串操作与正则表达式

1.清理字符串中多余的空格: trim()

    如:$name=trim($_POST[‘name’]);

    trim()将除去字符串开始位置、结束位置的空格,再返回处理后的字符串;默认出去换行符、回车符(\n,\r),水平、垂直制表符(\t,\x0B),字符串结束符(\0)和空格,除此之外,可通过trim()的第二个参数提供需除去的其他特殊字符;

    //ltrim() rtrim()分别是 从字符串的开始处除去空格、从字符串的结束处除去空格

2.重新格式化字符串:

     ①使用HTML格式化:nl2br()

              该函数将用<br />代替字符串中的换行符,因为HTML会忽略纯空格,若不用nl2br()函数来过滤输出结果,将会是单独的一行字符串无法换行;

     ②为打印输出而格式化字符串:printf() sprintf()  //类似于C里面的printf,printf()无返回类型,sprintf()返回string类型

              %符号后可添加参数位置,以$符号结束,如“2\$”指“用列表中的第二个参数替换”;

              * 对应vprintf() vsprintf() 其可接受的参数为格式字符串和参数数组;

     ③改变字符串中的字母大小写:

               strtoupper();  //将字符串转换为大写

               strtolower();   //将字符串转换为小写

               ucfirst();   //若字符串首字符为字母,则将该字符转换为大写

               ucwords();  //将字符串每个单词的首字母转换为大写

      ④格式化字符串以便存储:addslashes()  stripslashes()

              一些字符(单双引号、反斜杠\、NULL字符)会被数据库解释成控制符,故需用函数对字符串进行转义;

             addslashes()会为引号加上\,反斜杠变成\\,\\变成\\\\等

             stripslashes()将移除addslashes()为格式化所加上的反斜杠;

3.连接和分割字符串:

      ①explode(分隔符,字符串);  【分割】 | 【连接】  implode(分隔符,字符串数组); //join()与implode()效果相同

      ②分割:strtok(字符串,分隔符);  //分隔符可以是一个字符,也可以是一个字符串

      ③获得子字符串:substr($teststring,st,ed);

                                  //返回从第st-1(若st为负数,则是倒数第st)个到第ed-1(若ed为负数,则是倒数第ed)个字符(因为是从0开始)

4.字符串的比较:

        strcmp(str1,str2);  //按字典序排列,若str1==str2,返回0;若str1>str2,返回正数;若str1<str2,返回负数;【区分大小写】

        strcasecmp(str1,str2);  //strcmp()的不区分大小写版本

        strnatcmp() strnatcasecmp()  //按“自然顺序”而不按字典序排列,字典序认为2>12,而“自然顺序”则按人们习惯的顺序2<12

5.在字符串中查找字符串:strstr();

        strchr()与strstr()完全相同,stristr()是strstr()的不区分大小写版本,strrchr()会从最后出现目标关键字的位置的前面返回被搜索字符串;

6.查找子字符串的位置:

        strpos();  //返回第一次出现目标关键字(关键字可以是任意长度的字符串)的位置(第一个字符的位置是0);

        strrpos();  //返回最后一次出现目标关键字(关键字可以是任意长度的字符串)的位置(第一个字符的位置是0);

        //若目标关键字不在字符串中,上述函数都会返回false,而false在PHP中会等于0,即会被当作是字符串的第一个字符,故用===进行判断而不用==

7.替换子字符串:

       str_replace(需被替换的子字符串,用于替换的新子字符串,字符串,要执行的替换次数);  //替换次数默认为1

       substr_replace(原字符串,用于替换的字符串,初始位置,偏移量);

8.正则表达式。。。好杂啊 前面的匹配字符就。。不列了。。列几个函数。。

       ①用正则表达式查找子字符串:ereg(‘正则表达式’,str_search);   //eregi(); 不区分大小写

       ②用正则表达式替换子字符串:str_replace(‘正则表达式’,用来替换的字符串,str_search);  //eregi_replace();

       ③用正则表达式分割字符串:split(‘正则表达式’,str_search);

posted @ 2016-09-07 16:09  &ATM  阅读(327)  评论(0编辑  收藏  举报
……