一、字符串的特点
1.可以将字符串看做数组,但不是数组,不能使用数组处理函数来处理字符串。
但是可以如下使用:
<?php
header("content-type:text/html;charset=utf-8");
$str="abcde";
echo $str{1};//输出b 注意 {}
2.字符与字符编码的转换
chr()将字符编码转换成字符
ord()将字符转换成字符编码
二、字符串的输出
1、echo
处理效率很高。因为他不是函数,而是PHP的语言结构。
简单理解函数与语言结构:
语言结构,就是PHP的关键字,是PHP语法的一部分,如if、else等都是PHP的关键字。
语言结构为什么比函数块,因为函数要被ZEND引擎分解为语言结构执行。
2、print()
和echo一样,但是有返回值。成功返回1,失败返回0。这样可以知道用户(比如浏览器)是否正确获得输出了。这是一个函数,处理效率不高。
3、printf()
和c语言用法一样
%u 无符号十进制数
%d 有符号十进制数
4、sprintf()
和printf()用法相同,但是将结果保存在一个变量中,不输出。
这样就可以将任意格式的数据保存到变量中,以备使用。(如就可以解决workerman中的问题)
三、常用的字符串格式化函数
1、过滤与填补
过滤
使用ltrim()、rtrim()、trim()分别过滤到左端、右端、两端的字符,若不指定过滤规则,就默认过滤掉 空格、NULL等。如下
<?php
$str="This is a test...123";
echo $str."<br/>";
echo trim($str,"A..Z 0..9")."<br/>";//his is a test...
填补
<?php
$str="LAMP";
echo str_pad($str, 10)."<br/>";//默认用空格从右边填补
echo str_pad($str, 10,"-=",STR_PAD_LEFT)."<br/>";//-=-=-=LAMP
echo str_pad($str, 10,"-=",STR_PAD_BOTH)."<br/>";//-=-LAMP-=-
2、大小写的转换
strtoupper()
strtolower()
3、对HTML标签的处理
将\n转换为《br/》
很多人习惯\n,不习惯br.但是浏览器不认识\n啊,怎么办?
nl2br()就可以在\n前添加一个br
将特殊字符转换为html实体,防止用户的非法输入
htmlspecialchars()和htmlentities()用法一样,但是htmlentities可以转移更多的html实体。
addslashes()会在 单引号(’),双引号(”),反斜线(\),NULL前增加反斜线()
stripslashes()与之相反,去掉反斜线。
对html标签的过滤:strip_tags()
<?php
$str="<b><i>LAMP</i></b>";
echo strip_tags($str,"<b>");//默认删除全部html标签,此种,不删除<b>标签
4、其他函数
字符串反转函数strrev()
通过千分位来格式化数字:number_format()
<?php
echo number_format(12345689,2);//12,345,689.00
四:字符串的比较
strcmp(str1,str2)对大小写敏感
strcasecmp(str1,str2)不区分大小写
若str1>str2 返回1
若str1=str2 返回0
若str1(小于)str2 返回-1
注意比较规则:
str1和str2的首字节开始比较,如果str1的首字节等于str2的首字节,那么继续比较。知道str1的首字节大于或小于str2的首字节,返回结果。
五、其他函数
strstr()–查找
<?php
echo strstr("Hello world!","world");//world!
echo strstr("Hello world!","world",true);//Hello
查找失败返回False
str_replace(search,replace,content)
<?php
echo str_replace("hello", "hi", "hello eric");//hi eric
还有explode(),substr()等(分割与截取)