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

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;  去除首尾两边的空白;
?>



猜你喜欢

转载自blog.csdn.net/prdslf001001/article/details/78689212