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


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

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

        trim()将除去字符串开始位置、结束位置的空格,再返回处理后的字符串;默认出去换行符、回车符( , ),水平、垂直制表符( ,x0B),字符串结束符()和空格,除此之外,可通过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);

  • 相关阅读:
    calendar的用法
    为什么要初始化变量呢
    什么情况下,if()后面的else可以省略不写
    new 对象的时候,括号里有值和无值的区别
    if...else...;if..else if...else
    java-csv导出-导出文件显示的日期格式不正确
    使用Navicat连接MySQL,连接失败(报1064错误)
    MySQL下载安装详解(win10)
    Syntax error, parameterized types are only available if source level is 1.5 or greater
    eclipse ant出错问题
  • 原文地址:https://www.cnblogs.com/atmacmer/p/5849845.html
Copyright © 2020-2023  润新知