您的位置:首页 > 其它

9.字符串处理

2016-11-30 21:06 141 查看
1、字符串格式化

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

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


由于php编辑器文本上的空格在网页上并不存在,所以在这里要清理空格

     需要用到函数——

ltrim()——清理左边的空格

rtrim()——清理右边的空格

 trim()——清理左右两边的空格
<?php
$str='   php   ';
echo trim($str);
?>


(2)换行符br

应用:在回帖时,一个回车就是\n

通过函数来实现\n转换为<br>该转换过程
<?php
echo 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;

?>


自然排序、非自然排序
<?php
echo strcmp('2','10');  //非自然排序   1

//自然排序;
echo strnatcmp('2','10');  //-1
?>


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

?>


strlen():测试字符串的长度

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

?>


4、查找替换字符串

(1)查找字符串

strstr():返回指定字符串开始输出之后的字符串

stristr():不区分大小写

strchr():strstr的别名
<?php
echo substr_count('ycoo60@gmail.com','@');  //gmail.com;

?>


(2)字符串位置

strpos():查找某字符串最先出现的位置

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

echo strrpos('yc60.com@gmail.com','c');
//字符串最后出现的位置;
?>


(3)字符串的替换

sre_replace():第一个参数表示要查找的字符串,第二个表示要替换的字符串,第三个表示原来的被替换的完整字符串;

str_ireplace():不区分大小写

substr_replace()
<?php
echo 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形式,中文的算法是——两个字符对应一个中文;
?> 结果:我
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息