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字符替换,每次替换都是针对原始字符串进行替换);
?>
<?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(','); // 按照标记逐个赋值输出;
}
?>
<?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 ;
?>
(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 填充到左边;
?>
(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; 去除首尾两边的空白;
?>