[总结]PHP字符串处理

一、字符串的特点

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()等(分割与截取)

六:总结图表

这里写图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值