9.字符串处理

来源:互联网 发布:迈克柯里昂知乎 编辑:程序博客网 时间:2024/04/26 08:08

1、字符串格式化
(1)整理字符串第一步是处理空格

<?php$str='   php   ';echo $str;?>


由于php编辑器文本上的空格在网页上并不存在,所以在这里要清理空格
     需要用到函数——
ltrim()——清理左边的空格
rtrim()——清理右边的空格
 trim()——清理左右两边的空格
<?php$str='   php   ';echo trim($str);?>




(2)换行符br
应用:在回帖时,一个回车就是\n
通过函数来实现\n转换为<br>该转换过程
<?phpecho nl2br('This is a man!\n This is a man!');?>


结果:This is a man!
      This is a man!




(3)将所有字符串转换为html
htmlentitis():所有字符转为html
htmlspecialchar():只转换特殊的字符
strip_tags():将html去除掉
<meta http-eauiv="Content-Type" content="text/html;charset=GBK"><?php//将所有字符串转为html$str='<strong>中安消</strong>';//echo htmlentitis($str);//只要传入特殊的字符;//echo htmlspecialchars($str);//将html去除掉;echo strip_tags($str);?>



(4)stripcslashes()函数过滤解析有问题的字符串
<?php$str='This is a teacher.He is a 'Lee',\n This is Wu!';//对于即将插入数据库的字符串,把有问题的字符串处理一下;$a=addslashes($str);//这个$a是写入数据库的,就会有\杠号echo  stripcslashes($a);//首先将写进数据库的字符串通过addslashes()函数过滤一下;//再通过stripcslashes解析一下?>




(5)格式化字符串中的大小写
strtoupper()  转换为大写
strtolow()  转换为小写
ucfirst()  将第一个字母转为大写
ucwords()  将每个单词第一个字母转换为大写


(6)填充字符串
str_pad():将字符串用指定个数的字符填充字符串
<?php$str='Lee';//echo str_pad($str,4).is good';  //表示一个空格;echo str_pad($str,5,#).'is good';//表示在后边加一个#;?>


结果:Lee is good#


2、操作子字符串
若要查看字符串各个部分,用函数
(1)explode():使用一个字符串分开另一个字符串(切开字符串)
          返回的是一个数组
(2)implode():使用一个字符进行组合起来
注意:这两个函数第一个参数表示要分割/组合的字符(@、#等),
       第二个参数是要分割/组合的字符;

<?php//第一个参数是分割字符串,第二个是要被分隔的字符串;$email=explode('@','yc60.com@gmail.com');//print_r($email);//分割完之后,经过一轮筛选要组合;//$arr=array('Lee','wa','wxp');//$str=implode('&',$arr);//echo $str;//组合起来;$str=implode('@',$email);echo $str;?>




(3)strtok():表示以某一个字符串分割小份
<?php$str='I will be back';$tok=strtok($str,' ');  //echo $tok;  //I//用循环依次分割;while($tok){echo $tok.'<br>';$tok=strtok(' ');}?>




(4)substr():表示访问起点和终点
<?php$str='yc60.com@gmail.com';//中间的参数表示开始的位置,位置从0开始,第三个参数表示取的位数substr($str,0,3);?>




(5)str_split():分解字符串,返回数组
<?php$str='This is zhao';print_r(str_split(str));?>


(6)strrev():逆向打印(仅限于英文,中文会出错)
<?php$str='This is zhao';print_r(strrev(str));?>


 结果:oahz si sihT




3、字符串的比较
(1)“==”比较字符串是否一致,返回值为boolean
echo 'a'=='a';


(2)字符串的比较:
strcmp():比较两个字符串,不区分大小写
a=b返回0,a>b返回-1,a<b返回-1
<?php//if(strcmp('b','b')==0){//echo '==';  //0;//}//不区分大小写;echo strcmp('b','B');  //0;?>


自然排序、非自然排序
<?phpecho strcmp('2','10');  //非自然排序   1//自然排序;echo strnatcmp('2','10');  //-1?>


strspn():返回字符串出现的个数
<?phpecho strspn('com','yc60@com');  //com有两个,返回2?>




strlen():测试字符串的长度
substr_count:测试字符串出现的频率
<?phpecho substr_count('ycoo60@gmail.com','o');  //o有3个,返回数字3;?>



4、查找替换字符串
(1)查找字符串
strstr():返回指定字符串开始输出之后的字符串
stristr():不区分大小写
strchr():strstr的别名
<?phpecho substr_count('ycoo60@gmail.com','@');  //gmail.com;?>




(2)字符串位置
strpos():查找某字符串最先出现的位置
strrpos():查找某字符串最后出现的位置
<?phpecho strpos('yc60.com@gmail.com','c'); //字符串第一次出现的位置;echo strrpos('yc60.com@gmail.com','c');//字符串最后出现的位置;?>




(3)字符串的替换
sre_replace():第一个参数表示要查找的字符串,第二个表示要替换的字符串,第三个表示原来的被替换的完整字符串;
str_ireplace():不区分大小写
substr_replace()
<?phpecho str_replace('Lee','wq','This is Lee!'); //字符串替换;echo substr_replace('yc60.com@gmail.com','&&',9,5);//从第9个开始,替换5个;?>



5、处理中文字符
中文字符是gbk,utf8,gb312
(1)mb_strlen():求字符串长度
(2)mb_strstr():求某字符串到结尾的字符
(3)mb_strpos():求出字符最先出现处
(4)mb_substr():取出指定的字符串
(5)mb_substr_count():返回对应函数substr_str()返回字符串出现的次数

<?php$str='我是赵航'; //对于中文而言是四个字符;echo mb_strlen($str,GBK);//加上mb表示中文形式的gbk形式,中文的算法是——两个字符对应一个中文;?>

<?php$str='我是赵航'; //对于中文而言是四个字符;echo mb_substr($str,0,1,'GBK');//加上mb表示中文形式的gbk形式,中文的算法是——两个字符对应一个中文;?>
结果:我

0 0