IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> PHP知识库 -> PHP 字符串操作 -> 正文阅读

[PHP知识库]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

结束语

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

  PHP知识库 最新文章
Laravel 下实现 Google 2fa 验证
UUCTF WP
DASCTF10月 web
XAMPP任意命令执行提升权限漏洞(CVE-2020-
[GYCTF2020]Easyphp
iwebsec靶场 代码执行关卡通关笔记
多个线程同步执行,多个线程依次执行,多个
php 没事记录下常用方法 (TP5.1)
php之jwt
2021-09-18
上一篇文章      下一篇文章      查看所有文章
加:2021-12-24 18:16:21  更:2021-12-24 18:16:36 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/14 14:50:23-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码