【web 开发】PHP中字符串的格式化(上)

举报
迷彩 发表于 2023/07/30 10:34:16 2023/07/30
【摘要】 前言前面的几篇文章我们介绍了字符串的基本概念和用法,同时还介绍了字符串的输出和格式化输出以及PHP中字符串的比较等操作函数,本文接着介绍字符串的其它常用的格式化相关的函数,字符串格式化就是将字符串处理为某种特定格式.通常用户从表单中提交给服务器的数据都是字符串的形式,可以说对字符串的处理是实际日常开发中打交道最多的.为了达到期望的输出效果,就需要按照一定的格式来处理这些字符串后再去使用.我们...

前言

前面的几篇文章我们介绍了字符串的基本概念和用法,同时还介绍了字符串的输出和格式化输出以及PHP中字符串的比较等操作函数,本文接着介绍字符串的其它常用的格式化相关的函数,字符串格式化就是将字符串处理为某种特定格式.通常用户从表单中提交给服务器的数据都是字符串的形式,可以说对字符串的处理是实际日常开发中打交道最多的.为了达到期望的输出效果,就需要按照一定的格式来处理这些字符串后再去使用.我们前面介绍的printf()和sprintf()两个函数就是有关于字符串输出的格式化函数

1.去除空格及字符串自动补全

空格也是一个有效的字符,在字符串中也会占用一个位置.用户在表单中输入数据时,经常会在无意中多输入一些无意义的空格字符.比如:用户登录页面的用户名或者密码,多输入空格会导致服务器端查找不到相关用户或者密码不正确而导致登录失败.因此,PHP脚本在接收到通过表单传递过来的数据时,首先要处理的就是字符串中多余的空格,或者其他一些没有意义的符号,或者其他程序中限定的字符.在PHP中可以通过ltrim(),rtrim(),trim()函数来完成这项工作.这三个函数的语法格式基本一致.但作用有所不同,这些函数的语法格式分别如下:

string ltrim(string str [, string charlist]) //从字符串左侧删除空格或者其他指定字符
string rtrim(string str [, string charlist]) //从字符串右侧删除空格或者其他指定字符
string trim(string str [, string charlist]) //从字符串两端删除空格或者其他指定字符

这三个函数分别用于从字符串左,右,两端删除空白字符或者其他指定的字符或者符号.处理后的字符串都会以新字符串的形式返回,不会在原字符串上修改,即是对原有字符串没有影响,而是赋给新的字符串并返回.其中第一个参数str是待处理的字符串,为必选项,毕竟这写函数是围绕着字符串展开的,主体都没有,处理什么呢?第二个参数charlist是过滤字符串,用于指定希望去除的特殊符号,该参数为可选.如果不指定过滤的字符串.默认会去除以下字符:

空格: " ", ASCII 值为32的字符(0x20)

NULL: "\0", ASCII 值为0的字符(0x00)

制表符: "\t", ASCII 值为9的字符(0x09)

新行即换行符: "\n", ASCII 值为10的字符(0x0A)

回车: "\r", ASCII 值为13的字符(0x0D)

此外,还可以使用".."符号指定需要去除的一个范围,例如:"0...9"或者"a..z"表示去掉ASCII码值中的数字和小写字母,下面我们看看相关的处理代码:

<?php
$str = "  1234  ";

echo strlen($str);echo "<br>";
echo strlen(ltrim($str));echo "<br>";
echo strlen(rtrim($str));echo "<br>";
echo strlen(trim($str));echo "<br>";

$str = "1234 This is a demo ...";
echo ltrim($str, "0..9");echo "<br>";
echo rtrim($str, ".");echo "<br>";
echo trim($str, "0..9 aa..z .");echo "<br>";//多个范围和指定字符

执行结果:

不仅可以按需求过滤掉字符串中的内容,还可以使用str_pad()函数按需求对字符串进行填补,也就是使用特定的字符来填充字符到固定的长度.可以用于对一些敏感信息的保护,比如:数据的对并排列等操作.函数语法如下:

string str_pad(string input, int pad_length [, string pad_string [, int pad_type]])

这个函数有4个参数.第一个参数是必选项,指明要处理的字符串.第二个参数也是必选项,给定处理后字符串的长度,如果该值小于原始字符串的长度,则不进行任何操作.第三个参数指定填补时所用的字符串,此参数为可选参数,如果没有指定则默认使用空格填补.最后一个参数指定填补的方向,它有三个可选值:STR_PAD_BOTH,STR_PAD_lEFT及STR_PAD_RIGHT。分别代表字符串两端,左和右位置进行填补。最后一个参数也是可选参数,如果没有指定,则默认是STR_PAD_RIGHT。函数str_pad()的使用方法如下:

<?php
$str = "1234";

echo str_pad($str, 10);echo "<br>";
echo str_pad($str, 10, "0", STR_PAD_LEFT);echo "<br>";//使用0填充字符串
echo str_pad($str, 10, "0", STR_PAD_BOTH);echo "<br>";
echo str_pad($str, 10, "0", STR_PAD_RIGHT);echo "<br>";
echo str_pad($str, 8, "* * *");echo "<br>";

执行结果:

2.PHP字符串的字母大小写转换

在上一篇文章PHP字符串的比较中,在介绍strcasecmp()时,介绍到有关于字符串大小写敏感的时候,我们也使用了函数strtolower().在PHP中提供了4个字符串大小写的转换函数,它们都只有一个可选参数,即传入要进行转换的字符串.可以直接使用这些函数完成字母大小写的转换操作.函数strtoupper()用于将给定的字符串全部转换为大写字母。函数strtolower()用于将给定的字符串全部转换为小写字母。函数ucfirst()用于将给定的字符串中的首字母转换为大写,其余字符不变,函数ucwords()用于将给定的字符串中全部以空格分隔的单词首字母转换为大写.下面我们通过例子来感受一下:

<?php
$str = "the student's name is ZhangSan, 12 Years old";
echo strtolower($str);
echo "<br>";
echo strtoupper($str);
echo "<br>";
echo ucfirst($str);
echo "<br>";
echo ucwords($str);

执行结果如下:

这些函数只是按照他们说明中描述的方式工作,要想确保一个字符串的首字母是大写字母,而其余的都是小写字母,就需要使用复合的方式:

<?php
$str = "the student's name is ZhangSan, 12 Years old";

echo ucfirst(strtolower($str));

执行结果如下:

在项目实际开发中,这些字符串大小写转换函数并不是为了处理文章内容或者文章标题的大小写问题,因为我们开发的项目大部分还是以中文为主.但我们也不能忽视这些函数,在编写代码的时候对字符串处理使用这些函数尤为重要.

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。