首页 > 代码库 > php基础知识总结(3)字符串函数string

php基础知识总结(3)字符串函数string

一、大小写转换

       1、strtolower()--转换为小写。

              echo strtolower("Hello WORLD!"); //hello world!             

       2、strtoupper()--转换为大写

              echo strtoupper("Hello WORLD!"); //HELLO WORLD!             

       3、ucfirst()--把首字母转换为大写。

              echo ucfirst("hello world");     //Hello world             

       4、ucwords()--把每个单词转换为大写。

              echo ucwords("hello world");    //HELLO WORLD

 

二、查找位置

       1、stripos()--返回字符串在另一字符串中第一次出现的位置(不区分大小写)

              echo stripos(‘rewgf 5465‘,‘5‘);//6 指针从0开始      

       2、strpos()--返回字符串在另一字符串中第一次出现的位置(对大小写敏感)

              echo strpos("fsdDfdw!","D");//=>3             

       3、strripos()--查找字符串在另一字符串中最后出现的位置(不区分大小写)

              echo strripos(‘rewgf 5465‘,‘5‘);//9 指针从0开始  

       4、strrpos()--查找字符串在另一字符串中最后出现的位置(对大小写敏感)

              echo strrpos("fsdDfdw!","D");//3        

             

三、替换

       1、str_ireplace() --替换字符串中的一些字符。(对大小写不敏感)

              (1)、echo str_ireplace("world","John","Hello world!");//Hello John!             

              (2)、$arr = array("blue","red","green","yellow");

                      print_r(str_ireplace("red","pink",$arr,$i)); //array("blue","pink","green","yellow");

                      echo "Replacements: $i";  //1             

              (3)、$find = array("Hello","world");

                      $replace = array("B");

                      $arr = array("Hello","world","!");

                      print_r(str_ireplace($find,$replace,$arr));   //Array([0] => B[1] =>[2] => !)               

       2、str_replace()--替换字符串中的一些字符。(对大小写敏感)

              echo str_replace("world","John","Hello world!");//Hello John!         

       3、substr_replace(string,replacement,start,length)--把字符串的一部分替换为另一个字符串。指针从0开始

              (1)、echo substr_replace(‘acbabcabc‘,‘a‘,2);//aca 从第2个字符开始,把后面的字符都换成a 

              (2)、echo substr_replace(‘acbabcabc‘,‘a‘,2,2);//acabcabc 从第2个字符开始,把2个字符换成a            

  

四、截取字符串

       1、substr(string,begin,length)--返回字符串的一部分。    

              (1)、substr(‘abcdef‘,1);//从第2个字符开始截取到最后 bcdef

              (2)、substr(‘abcdef‘,1,3);//从第2个字符开始截取3个 bcd           s

              (3)、substr(‘abcdef‘,-2);//从倒数第2个字符开始截取 ef

              (4)、substr(‘abcdef‘,-3,1);//从倒数第3个字符开始截取1个字符 d

              (5)、echo substr(‘所这行不会有输出‘,3);//行不会有输出 每个汉字当是1个字符             

       2、strstr()--返回某字符串第一次出现后的所有字符串,对大小写敏感【别名strchr()】

              (1)、echo strchr("fsdfdf world  Hello world!","world");//=>world Hello world!

              (2)、echo strchr("fsdfdf world  Hello world!","d"); //dfdf world Hello world!             

       3、strpbrk()--返回某字符串第一次出现后的所有字符串,对大小写敏感,在多个字符串的处理上与上面的不同

              (1)、echo strpbrk("fsdfdf world  Hello world!","world");//=>dfdf world Hello world!,只取最后一个字符去匹配

 

五、字符串与数组转换

       1、explode() ---把字符串分割为数组。

              $str = "Hello world ";

              print_r (explode(" ",$str));//=>Array([0] => ‘Hello‘,[1] => ‘world‘)      

       2、implode()---把数组元素组合为一个字符串。【别名join()】

              $arr = array(‘Hello‘,‘World!‘,‘Beautiful‘,‘Day!‘);

              echo implode(" ",$arr); //=>Hello World! Beautiful Day!

 

六、HTML与字符串转换

       1、html_entity_decode()          把 HTML 实体转换为字符。

       2、htmlentities()               把字符转换为 HTML 实体。

       3、htmlspecialchars_decode()         把一些预定义的 HTML 实体转换为字符。

       4、htmlspecialchars()               把一些预定义的字符转换为 HTML 实体。

 

七、删除空格和预定义字符

       1、ltrim()---从字符串左侧删除空格或其他预定义字符。

              $str = "    Hello World!";

              echo "With ltrim: " . ltrim($str); //=>With ltrim: Hello World!

       2、rtrim()---从字符串右侧删除空格或其他预定义字符。      

       3、trim()---从字符串的两端删除空白字符和其他预定义字符。

 

八、比较字符串

       1、strnatcasecmp()---使用一种“自然”算法来比较两个字符串(对大小写不敏感)

               strnatcmp()使用一种“自然”算法来比较两个字符串(对大小写敏感)

                     在自然算法中,数字 "2" 小于数字 "10"。在计算机排序中,"2" 大于 "10",这是因为 "2" 大于 "10" 的第一个数字。                    

                     该函数返回:                    

                            0 - 如果两个字符串相等

                            -1 - 如果 string1 小于 string2

                            1 - 如果 string1 大于 string2

                            echo strnatcasecmp("2Hello world!","10Hello world!");//-1

                            echo strnatcasecmp("10Hello world!","2Hello world!");//1

                            echo strnatcasecmp("4Hello world!","Hello world!"); //-1

                            echo strnatcasecmp("Hello world!","4Hello world!"); //1

                            echo strnatcasecmp("Hello world!","Hello world!");  //0

                            echo strnatcasecmp("4Hello world!","4Hello world!");//0          

                            echo strnatcasecmp("4Hello world!","0Hello world!");//1   

                           

       2、strcasecmp(string1,string2,length) ----比较两个字符串。(对大小写不敏感)[参数都必须]

               strcmp(string1,string2,length)     比较两个字符串。(对大小写敏感)  [参数都必须]

               strcmp(string1,string2)            比较两个字符串。(对大小写敏感)

                     该函数返回:

                            0 - 如果两个字符串相等

                            <0 - 如果 string1 小于 string2

                            >0 - 如果 string1 大于 string2

                            echo strncasecmp("Hello world!","Hello earth!",6);//0

                            echo strncasecmp("1Hello world!","2Hello earth!",1);//-1

                            echo strncasecmp("2Hello world!","2Hello earth!",1);//1

                            echo strncasecmp("Hello world!","Hello earth!",8);  //18  

                           

       3、strcoll()   ---- 比较两个字符串(根据本地设置)(A<a 或 A>a)

                     该函数返回:

                            0 - 如果两个字符串相等

                            <0 - 如果 string1 小于 string2

                            >0 - 如果 string1 大于 string2

                            setlocale (LC_COLLATE, ‘NL‘);

                            echo strcoll("Hello World!","Hello WORLD!");//-1                           

                            setlocale (LC_COLLATE, ‘en_US‘);

                            echo strcoll("Hello World!","Hello WORLD!");//1

       4、substr_compare() ---函数从指定的开始长度比较两个字符串。

                     该函数返回:

                            0 - 如果两字符串相等

                            <0 - 如果 string1 (从开始位置)小于 string2

                            >0 - 如果 string1 (从开始位置)大于 string2

                            echo substr_compare("Hello world","Hello world",0); //0

                            echo substr_compare("Hello world","world",6);       //0

                            echo substr_compare("Hello world","WORLD",6,TRUE);  //1 [ FALSE (对大小写敏感)]

 

九、添加和删除反斜杠

       1、addcslashes() --- 函数在指定的字符前添加反斜杠

              【在对 0,r,n 和 t 应用 addcslashes() 时要小心。在 PHP 中,\0,\r,\n 和 \t 是预定义的转义序列】

              $str = "Hello, my name is John Adams.";

              echo addcslashes($str,‘m‘);    //=>Hello, \my na\me is John Ada\ms.

              echo addcslashes($str,‘A..Z‘); //=>\Hello, my name is \John \Adams.

              echo addcslashes($str,‘a..z‘); //=>H\e\l\l\o, \m\y \n\a\m\e \i\s J\o\h\n A\d\a\m\s.

              echo addcslashes($str,‘a..h‘); //=>H\ello, my n\am\e is Jo\hn A\d\ams.             

       2、addslashes() --- 函数在指定的预定义字符前添加反斜杠。【 预定义符:单引号、双引号、反斜杠、NULL】

              $str = "Who‘s John Adams?";

              echo addslashes($str);  //=>Who\‘s John Adams?          

       3、stripcslashes() 删除由 addcslashes() 函数添加的反斜杠。   

       4、stripslashes()  删除由 addslashes() 函数添加的反斜杠。

 

十、uuencode编码和解码

       1、convert_uuencode() --- 函数使用 uuencode 算法对字符串进行编码。

              $str = "Hello world!";

              echo convert_uuencode($str);  //=>,2&5L;&\@=V]R;&0A `          

       2、convert_uudecode() --- 函数对 uuencode 编码的字符串进行解码。

              $str = ",2&5L;&\@=V]R;&0A `";

              echo convert_uudecode($str);  //=>Hello world!      

      

十一、md5加密

       1、md5() --- 计算字符串的 MD5 散列。

              $str = "Hello";

              echo md5($str); //=>8b1a9953c4611296a827abf8c47804d7             

       2、md5_file()---计算文件的 MD5 散列。

              $filename = "test.txt";

              $md5file = md5_file($filename);

              echo $md5file;//=>5d41402abc4b2a76b9719d911017c592

 

十二、其他

       1、strlen()--获取字符串长度    

       2、strrev()--反转字符串,前后颠倒

       3、strip_tags()--删除字符中的html标签      

       4、chunk_split() 函数把字符串分割为一连串更小的部分。

              str = "Hello world!";

              echo chunk_split($str,1,".");//=>H.e.l.l.o. .w.o.r.l.d.!.(分隔每个字符,并添加 ".")

              echo chunk_split($str,6,"...");//=>Hello ...world!... (六个字符之后分割一次字符串,并添加 "...")             

       5、nl2br() ---在字符串中的每个新行 (\n) 之前插入 HTML 换行符 (<br />)。

              echo nl2br("One line.\nAnother line."); //=>One line.

                                                    //=>Another line.          

       6、number_format() ---通过千位分组来格式化数字

              echo number_format("1000000");               //1,000,000

              echo number_format("1000000",2);            //1,000,000.00

              echo number_format("1000000",2,",",".");//1.000.000,00      

       7、parse_str() ---把查询字符串解析到变量中。

              parse_str("id=23&name=John%20Adams");

              echo $id."<br />"; //=>23

              echo $name;        //=>John      

              parse_str("id=23&name=John%20Adams",$myArray);

              print_r($myArray); //=>Array([id] => 23,[name] => John Adams                                                                           

       8、chr() ---函数从指定的 ASCII 值返回字符。

              echo chr(52);  //=>4

              echo chr(052);  //=>*

              echo chr(0x52); //=>R             

       9、substr_count()---计算子串在字符串中出现的次数。      

       10、wordwrap()---按照指定长度对字符串进行折行处理。