php字符串函数(2)替换、分割、填充、去除

来源:互联网 发布:淘宝上能买手机号码 编辑:程序博客网 时间:2024/05/17 08:17

1、字符串替换函数:


     (1)str_replace():   谁,被替换成啥,替换哪个里面的,一共替换了几次;

<?php// 1、一般 字符串 替换;$sss = 'This is a book,That is an apple';$str = 'xxoo';echo str_replace('is',$str,$sss,$count);  // Thxxoo xxoo a book,That xxoo an apple;  注意字符串'This'中的'is'也一并被替换了,若此'is'不想被替换到,需要用到正则表达式;?>

<?php// 2、多个 字符串 ,数组形式的替换;$sss = 'This is a book,That is an apple,but i love xigua';$beitihuan = array(book,apple,xigua);$tihuancheng = array(desk,banana);echo str_replace($beitihuan,$tihuancheng,$sss,$count); // This is a desk,That is an banana,but i love(这个是空字符) ;// 1、此种替换方式是 按照两个数组中的元素一一对应的逐个替换,如果'替换成'的元素个数少于’被替换‘元素个数,则用空格替代;// 2、第二次替换(即第2个对应的数组替换) 是在 第一次替换的 基础上再次替换的;(这个是和strtr字符替换不同的地方,strtr字符替换,每次替换都是针对原始字符串进行替换);?>


      (2)strtr(): 字符,有什么,替换成什么;

<?php//1、一般 字符的时候;$sss = 'This is a book,That is an apple,but i love xiguas';echo strtr($sss,'is','at'); // That at a book,That at an apple,but a love xaguat(最后的s被换成了t);     i=>a;  s=>t;echo strtr("baab", "ab", "01");  // 1001;   a=>0;  b=>1;// 注意: strtr()此时仅仅是 替换的 字符; 如果需要替换的字符 多于 替换成的 字符 ,多余的字符则被省略;  这个是也是和str_replace()一般字符串替换不同的地方;?>


<?php// 2、数组形式的整体替换时候;$sss = 'This is a book,That is an apple,but i love xiguas';echo strtr($sss,array('is'=>'at','at'=>'ese'));  // That at a book,These at an apple,but i love xiguas;//1、 以数组形式展示的时候,此时是以 字符串的 形式整体替换,不在是单个字符对应替换了;(最后的s没有被替换成t了);//2、此替换是以最原始的字符串进行的替换,不是在第一次替换的基础上再进行替换的(如第一次is替换了成了at,不是原始字符串中的at,则不会被替换);?>

2、字符串分割函数;(分割成数组、或者小块);

     

     (1)explode():以什么形式、标记、符号(必须要有),将字符串分割成数组,(分割成几个/哪些元素);


<?php$str = 'asds,fgdfg,tgry,dsf,dsfd';print_r(explode(',',$str));   // Array ( [0] => asds [1] => fgdfg [2] => tgry [3] => dsf [4] => dsfd );// 注意: 如果 分割的 标记、符号设置成空字符('')的时候,将返回false;print_r(explode(',',$str,3));   //  Array ( [0] => asds [1] => fgdfg [2] => tgry,dsf,dsfd );  增加了第三个参数,分割成几个元素;print_r(explode(',',$str,-2));  // Array ( [0] => asds [1] => fgdfg [2] => tgry );   如果第3个参数 是负数了 ,则表示省去最后的几个元素;?>

    (2)strtok():字符串,以什么标记,逐个分割;

<?php$str = 'asds,fgdfg,tgry,0,dsf,dsfd';echo strtok($str,',');  // asds;echo strtok($str,','); // asds;   如果前面再设置字符串名称,则会进行重新分割;echo strtok(','); //fgdfg;echo strtok(','); //tgry;$tok = strtok($str,',');while($tok!==false){   //  注意: $tok的值有可能是0,''等,和false的值相同(类型不同);echo $tok;          //  先输出第一个,即带字符串的;$tok = strtok(',');  // 按照标记逐个赋值输出;}?>


    (3):str_split():字符串 分割成数组,(每个数组元素占几个字节);


<?php$sss = 'sdfsdfghfjhgjkhkfsdf';$str = 'sdfgdffd';print_r(str_split($sss,3));   // Array ( [0] => sdf [1] => sdf [2] => ghf [3] => jhg [4] => jkh [5] => kfs [6] => df );// 如果省略第2个参数,则默认每个字节分割成一个数组元素;print_r(str_split($str));    // Array ( [0] => s [1] => d [2] => f [3] => g [4] => d [5] => f [6] => f [7] => d );  ?>

     (4):chunk_split():字符串,分割成小块(多少个字节为1块,每块后以什么标记结尾);

<?php$sss = 'dfghgjgkjl';//字符串$sss,分割成以3个字节为1个单元小块,每个小块结尾用','标记;echo chunk_split($sss,3,',');  // dfg,hgj,gkj,l,// 如果省去最后一个参数,则默认为换行("\n\r");echo chunk_split($sss,4);   // dfgh gjgk jl ; ?> 


3、字符串填充函数;
 

       (1):str_pad():字符串,填充多长,用什么填充,填充到哪边;

<?php$sss = 'EF';echo str_pad($sss,8,'0');   //EF000000   填充到8个字节的长度,用'0'字符填充, 默认填充到后面(右边);echo str_pad($sss,8); //'EF      '; 如果省略字符,则默认' '(空格字符);echo str_pad($sss,8,'0',STR_PAD_LEFT);   // 000000EF  填充到左边;?>


4、字符串去除函数;

      (1):trim():字符串中,去除什么,

<?php$sss ='1sdfdgfdsg2321xczvcv11';$str = '  safd  sdffd  ';echo trim($sss,'1');  // sdfdgfdsg2321xczvcv 去除字符串 首尾 所有的 1;echo ltrim($sss,'1'); // sdfdgfdsg2321xczvcv11  只去除字符产左边的 1;// 如果此函数不设置第2个参数,则默认去除\r\n\t\0...等等,首位两边的空白字符;echo trim($str);  //safd sdffd;  去除首尾两边的空白;?>