PHP 字符串操作

1. 字符串操作

字符串操作在PHP编程中占有重要的地位,几乎所有PHP脚本的输入与输出都要用到字符串,尤其是在PHP项目中开发过程中,为了实现某项功能,经常要对某些字符串进行特殊处理,如获取字符串的长度、截取字符串、替换字符串等;

2 去除字符串的首尾空格和特殊字符

在有些情况下,字符串不允许出现空格和特殊字符,所以需要去除字符串中的空格和特殊字符;
PHP提供了如下函数:time()函数 用于去除字符串首尾空格和特殊字符ltrim()函数用于去除字符串左边的空格和特殊字符rtrim()函数 用于去除字符串右边的空格和特殊字符

2.1 trim()函数

trim() 函数用于去除字符串的首尾空格和特殊字符,并返回去掉空格和特殊字符后的字符串;
语法格式如下:

string tim(string str [,string charlist]);

参数 str 是要操作的字符串对象:参数 charlist 为可选参数,指定需要从字符串中删除哪些字符,若不设置该参数,所有的可选字符都将被删除;
参数 chariist 的可选值如下表:

2021-12-17

例子:

<?php
$bbc = "\r\r(?青青原上草,一岁一枯荣!?)"        ;
//去除字符串左右两边的空格
echo trim($bbc);

//换行
echo "\r";
//去除祝福词左右两边的特殊字符
echo trim($bbc,"\r\r(??)");
?>

执行结果如下所示:
2021-12*-17

2.2 ltrim()函数

ltrim()函数用于去除字符串左边的空格和特殊字符,语法格式如下:

string ltrim(string str[,string charlist]);

例子:用 ltrim() 函数去除字符串左边的空格及特殊字符

<?php
$bbc = "\r\r(?青青原上草,一岁一枯荣!?)"        ;
//去除字符串左边的空格
echo ltrim($bbc);

//换行
echo "<br>";
//去除特殊字符串的特殊字符
echo ltrim($bbc,"\r\r(?");
?>

执行结果如下所示:
2021-12-17

2.3 rtrim() 函数

rtrim() 函数用于去除字符串右边的空格和特殊字符,语法格式如下:

string rtrim(string str [,string charlist]);

例子:用trtim() 函数去除字符右边的空格及特殊字符

<?php
$bbc = "\r\r(?青青原上草,一岁一枯荣!?)"        ;
//去除字符串左边的空格
echo rtrim($bbc);
//换行
echo "<br>";
//去除特殊字符串的特殊字符
echo rtrim($bbc,"?)");
?>

执行结果如下所示:
2021-12-17

2.4 wordwrap() 函数

wordwrap() 函数按照指定长度对字符串进行折行处理,可能会在行的开头留下空白字符;
语法格式如下:

wordwrap(string,width,break,cut)

例子:按照指定长度对字符串进行折行处理

<?php
$bbc = "长单词的一个例子:Supercalifragulistic";
echo wordwrap($bbc,15,"<br>\n")
?>

执行结果如下所示:
2021-12-17

3. 转义、还原字符串数据

转义、还原字符串的方法有两种:一种是手动转义、还原字符串数据;另一种是自动转义、还原字符串数据;

3.1 手动转义、还原字符串数据

字符串能用单引号(’’)、双引号("")、界定符(<<<) 3种方法定义,而指定一个字符串的最简单方法就是用单引号(’’)括起来;
当使用字符串时,可能在字符串中存在这几种易于与PHP脚本混淆的字符,所以必须对这几种字符作转义处理,方法是在这些字符的前面使用转义符;
"\" 是一个转义符,紧跟在 “/” 后面的第一个字符将变得没有意义或存在特殊含义;
若要在字符串中表示单引号,要用到反斜线()进行转义;
例子:使用转义字符""对字符串进行转义

<?php
echo "I am teacher=\"谢某\";";
?>

执行结果如下所示:
2021-12-17

简单的字符串,建议用手动方法进行字符转义;对于数据量较大的字符串,建议用自动转义实现字符串转义;
手动转义字符串,可用 addcslashes()函数 进行字符串还原;

3.2 自动转义、还原字符串数据

自动转义、还原字符串数据,可用PHP提供的 addslashes() 和 stripslashes() 函数来;
语法格式如下:
addslashes() 函数用来为字符串加入反斜线 "\"

string stripslashes(string str)

语法格式如下:
stripslashes() 函数用来将使用 addslashes() 函数转义后的字符串返回原样;

string stripslashes(string str);

例子:用自动转义字符函数 addslashes() 对字符串进行转义,再使用 stripslashes() 函数进行还原;

<?php
$bbc = "I am teacher = '谢某';";
//输出 bbc
echo $bbc."<br>";
//对 bbc 中的特殊字符进行转义
$bbc1 = addslashes($bbc);
//输出转义后的字符串
echo $bbc1."<br>";
//还原转义后的字符串
$bbc2 = stripslashes($bbc1);
//输出还原后的字符串
echo $bbc2."<br>";
?>

所有数据被插入数据库之前,有必要应用 addslashes() 函数进行字符串转义,避免特殊字符未经转义在插入数据库时出现错误;
注意: 对于用 addslashes() 函数实现的自动转义字符,可使用 stripslashes() 函数进行还原,但数据在插入数据之前必须再次进行转义;
PHP 通过使用 addcslashes() 和 stripcslashes() 函数来实现对指定范围内的字符串进行自动转义和还原;

3.3 addcslashes() 函数

addcslashes() 转义字符串中的字符,即在指定字符的前面加上反斜线 "/"
语法格式如下:

string addcslashes(string str,string charlist) 

参数 str 为将要操中的字符串;参数 charlist 指定要在字符串中的哪些字符前加上反斜线
若参数 charlsit 中包含 \n.\r等字符,将以C语言风格转换,而其他非字母数字且 ASCII 码低于 32 或高于 126 的字符均转换成八进制表示形式;
在设置参数 charlist 的范围时,需明确开始和结束范围内的字符串;

3.4 stripcslashes() 函数

语法格式如下:
stripcslashes() 函数用来对 addcslashes() 函数转义后的字符串进行还原;

string stripcslashes(string str)

例子:用addcslashes() 函数字符串 “Python 编程” 进行转义后,使用 stripcslashes() 函数对转义后的字符串进行还原;

<?php

$bbc = "Python 编程";
//输出bbc
echo $bbc."<br>";
$bbc1 = addcslashes($bbc,"Python 编程");
//输出转义后的字符
echo $bbc1."<br>";
//还原转义后的字符串
$bbc2 = stripcslashes($bbc1);
//输出还原后的字符串
echo $bbc2."<br>";

?>

5. 获取字符串的长度

5.1 strlen() 函数

使用strlen() 函数可获取字符串的长度;
语法格式如下:

int strlen(string str)

例子:使用 strlen() 函数获取字符串的长度

<?php

$bbc = "Python 编程";
//输出长度
echo strlen($bbc);

?>

执行结果如下所示:
20211217

注意: 汉字占用两个字符,数字、英文、小数点、下划线和空格占用一个字符;
strlen() 函数在获取字符串长度的同时,也能用来检测字符串的长度;
使用 strlen() 函数对输入的字符串长度进行检测,若长度不符,弹出错误提示框;
步骤如下:

  1. 新建一个PHP动态页面,保存为1.php;
  2. 添加一个表单,将表单的属性设置为 action,保存为1.php;
  3. 应用HTML标记设计页面,添加一个 user 文本框和一个 pwd 文本框;
  4. 新建一个 PHP 动态页面,保存为 2.php;

5.2 strpos() 函数

strpos() 函数用来检索字符中指定的字符或文本
若找到匹配,返回首个匹配的字符位置,若未找到匹配,返回FALSE;
例子:检索字符串"I am teacher!“中的"ea”;

<?php

echo strpos("I am teacher!","ea");

?>

执行结果如下所示:
2021-12-17

注意: 字符是从0开始而不是从1开始;所以”ea“的位置是6(不是7);

6 截取字符串

substr() 函数

格式如下:

string substr{string str,int start[,int length]}

substr() 函数的参数如下表所示:
2021-12-17

例子:使用 substr() 函数截取字符串中指定长度的字符;

<?php

//从下标为0的字符开始截取
echo substr("Python is good!",0);
echo "<br>";

//从下标为3的字符开始截取,连续截取6个字符
echo substr("Python is good!",2,6);
echo "<br>";

//从倒数第4个字符开始截取3个字符
echo substr("Python is good!",-4,3);
echo "<br>";

//下标为0的字符开始截取,截取到到倒数第4个字符
echo substr("Python is good!",0,-4);
echo "<br>";

?>

执行结果如下所示:
2021-12-17

在开发Web程序时,为了保证页面布局的合理,要对一些超长文本进行部分显示;
例子:用 substr() 函数截取超长文本的部分字符串,剩余部分用 ”……“ 代替

<?php

$bbc = "君不见黄河之水天上来,奔流到海不复回。君不见高堂明镜悲白发,朝如青丝暮成雪。人生得意须尽欢,莫使金樽空对月。天生我材必有用,千金散尽还复来。烹羊宰牛且为乐,会须一饮三百杯。岑夫子,丹丘生,将进酒,杯莫停。与君歌一曲,请君为我倾耳听。
钟鼓馔玉不足贵,但愿长醉不复醒。
古来圣贤皆寂寞,惟有饮者留其名。
陈王昔时宴平乐,斗酒十千恣欢谑。
主人何为言少钱,径须沽取对君酌。
五花马,千金裘,
呼儿将出换美酒,与尔同销万古愁。";

//若文本长度大于35
if(strlen($bbc)>35){
    //输出前26个字符
    echo substr($bbc,0,26)."...";
}
else{
    //如果没有,全部输出
    echo $bbc;
}

?>

执行结果如下所示:
2021-12-17

注意: 用 substr() 函数截取中文字符串时,若截取的字符个数是奇数,会导致截取的中文字符串出现乱码,因为一个中文占两个字符;substr() 函数更适用于英文字符串的截取,若想要对中文字符串进行截取,且要避免乱码,最好就是用 substr() 编写一个自定义函数;

2021-12-17

结束语

若这篇文章有帮到你,给个赞,收个藏,欢迎大家留言评论;
若文章有什么错误,欢迎大家指教。

  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值