PHP8的字符串操作1-PHP8知识详解

字符串是php中最重要的数据之一,字符串的操作在PHP编程占有重要的地位。在使用PHP语言开发web项目的过程中,为了实现某些功能,经常需要对某些字符串进行特殊的处理,比如字符串的格式化、字符串的连接与分割、字符串的比较、查找等一系列操作。用户和系统的交互也基本上是用文字来进行的,因此系统对文本信息,即字符串的处理非常重要。

PHP8 中提供了大量用来处理字符串的内置函数,使用这些内置函数,可以在 PHP8 程序中很方便地完成对字符串的各种操作。在本文中,我们通过具体的实例加深对字符串函数的理解。

PHP8的字符串操作

1、去除字符串首尾空格和特殊字符

空格在很多情况下是不必要的,所以经常会涉及到清除字符串的空格。比如某些程序中,出现了不必要的空格,就会大大的增加了程序出错的概率。

清理空格和特殊字符,我们用到了trim()、rtrim()和ltrim()函数。

1.1、trim()函数 

trim()函数是从字符串两边同时去除空格和特殊字符的。语法格式如下:

trim(string,charlist)

其中,string是需要检查的字符串,charlist为可选参数,用于设置需要被去除的字符。如果不设置该参数,则以下字符将被删除。

a、"\0":NULL,空值。

b、"\t":制表符。

c、"\n":换行符。

d、"\x0B":垂直制表符。

e、"\r":回车符。

f、" ":空格。

接下来,我们使用一个案例来做一个示范,代码如下:

<?php
$a = "***我们正在学习的是PHP8###";
echo "原文输出的是:" .$a;
echo "<br>"; 
$a = trim($a,"*"); //去除前面的*
$a = trim($a,"#"); //去除后面的#
echo "处理以后输出的是:" .$a;
?>

上面的代码,在PHP8中运行的结果如下:

原文输出的是:***我们正在学习的是PHP888###
处理以后输出的是:我们正在学习的是PHP888

1.2、ltrim()函数

ltrim()函数从左侧清楚字符串的空格和特殊字符。语法格式如下:

ltrim(string,charlist)

其中,string是需要检查的字符串,charlist为可选参数,用于设置需要被去除的字符。

示例代码:

<?php
$a = "***PHP8***";
echo "原文输出的是:" .$a;
echo "<br>"; 
$a = ltrim($a,"*"); //去除左侧的*
echo "处理以后输出的是:" .$a;
?>

在PHP8中运行的结果是:

原文输出的是:***PHP8***
处理以后输出的是:PHP8***

1.3、rtrim()函数

rtrim()函数从右侧清楚字符串的空格和特殊字符。语法格式如下:

rtrim(string,charlist)

其中,string是需要检查的字符串,charlist为可选参数,用于设置需要被去除的字符。

示例代码:

<?php
$a = "***PHP8***";
echo "原文输出的是:" .$a;
echo "<br>"; 
$a = rtrim($a,"*"); //去除左侧的*
echo "处理以后输出的是:" .$a;
?>

在PHP8中运行的结果是:

原文输出的是:***PHP8***
处理以后输出的是:***PHP8

2、获取字符串的长度

在PHP8中,计算字符串长度的函数有:strlen()和mb_strlen()。当字符串全部是英文的时候,strlen()和mb_strlen()是一样的。当字符串里面包含中文字符时二者就不一样了,当有中文的时候就使用mb_strlen()的才行。strlen()就统计不准确了。

说到中文字符,我们就来先说明一下,各种类型的字符串所占用的字节。

数字、英文、小数点、下划线和空格占一个字节。

一个汉字占2-4字节,具体占几个字节,根据使用什么编码决定的。汉字在GBK/GB2312编码中占2个字节,在UTF-8/Unicode中一般占3个字节(2-4字节也有)。一个中文的标点符号,也是两个字符。现在我们写网页的编码基本上都是国际编码UTF-8。

接下来使用strlen()函数和mb_strlen()函数获取字符串的长度。

2.1、strlen()函数

strlen()函数主要用于获取字符串的长度,语法如下:

strlen($str)

其中,str就是需要计算长度的字符串。还有一个就是返回值,如果成功返回字符串str的长度,如果str为空,则返回0.

示例:

<?php
$a = "你好,世界";
$b = "hello world";
$c = "HELLO WORLD";
echo "字符串a的长度为:".strlen($a);
echo "<br>"; 
echo "字符串b的长度为:".strlen($b);
echo "<br>"; 
echo "字符串c的长度为:".strlen($c);
?>

以上代码在PHP8中,运行的结果为:

字符串a的长度为:15
字符串b的长度为:11
字符串c的长度为:11

以上结果可以看出,大小写是一样的,但是中文的输出你们觉得对吗?

如果说输出的是字节的大小,那还算是对的,但是如果是字符串的长度,那肯定是不对的。

接下来就学习使用mb_strlen()函数来统计带中文的字符串。

2.2、mb_strlen()函数

mb_strlen()函数用于统计带中文字符串的长度,mb_strlen()函数语法格式如下:

mb_strlen($str,$encoding)

其中,str:就是计算长度的字符串。

encoding:就是字符串编码。如果省略,则使用内部字符编码。

返回值:返回具有encoding编码的字符串包含的字符数。多字节的字符被记为1.如果给定的encoding无效则返回FALSE。

mb_strlen()函数和strlen()函数用法上面大体一致,多了一个字符编码的可选参数而已。

示例代码:

<?php
$a = "你好,世界";
$b = "hello world";
$c = "HELLO WORLD";
echo "字符串a的长度为:".mb_strlen($a);
echo "<br>"; 
echo "字符串b的长度为:".mb_strlen($b);
echo "<br>"; 
echo "字符串c的长度为:".mb_strlen($c);
?>

以上代码在PHP8中的运行结果为:

字符串a的长度为:5
字符串b的长度为:11
字符串c的长度为:11

字符串的操作的内容太多了,多分一天来写了。明天继续写后面的字符串的操作。

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/93770.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【Hyper-V】Windows11 家庭版怎么启用虚拟机Hyper-V

在电脑Windows11系统上启用虚拟机Hyper-V&#xff0c;打开 启用和关闭WIndows功能&#xff0c;找到其中一项Hyper-V&#xff0c;对于家庭版的系统用户来说&#xff0c;这个选项是没有的&#xff0c;接下来讲一讲怎么开启。 安装Hyper-V 创建一个文件名为Hyper-v.bat&#xff…

springcloud3 hystrix实现服务降级的案例配置2

一 服务降级的说明 1.1 服务降级说明 "服务器忙&#xff0c;请稍后在试"不让客户达等待&#xff0c;立即返回一个友好的提示。 1.2 服务降级的触发情况 1.程序运行异常&#xff1b; 2.超时&#xff1b; 3.服务熔断触发服务降级&#xff1b;4 .线程池/信号量打…

Web菜鸟教程 - Springboot接入认证授权模块

网络安全的重要性不言而喻&#xff0c;如今早已不是以前随便弄个http请求就能爬到数据的时代&#xff0c;而作为一个架构师&#xff0c;网络安全必须在产品开发之初就考虑好。因为在产品开发的后期&#xff0c;一方面是客户增多&#xff0c;压力变大&#xff0c;可供利用的时间…

[LeetCode]矩阵对角线元素的和

解题 思路 1: 循环,找到主对角线的下标和副对角线的下标,如果矩阵长或宽为奇数的时候,需要减去中间公共的那一个值,中间公共的那个数的下标为mat[mat.size()/2][mat.size()/2]副对角线的下标为 mat [i][mat.size()-i-1] class Solution { public:int diagonalSum(vector<ve…

2.阿里云对象存储OSS

1.对象存储概述 文件上传&#xff0c;是指将本地图片、视频、音频等文件上传到服务器上&#xff0c;可以供其他用户浏览或下载的过程。文件上传在项目中应用非常广泛&#xff0c;我们经常发抖音、发朋友圈都用到了文件上传功能。 实现文件上传服务&#xff0c;需要有存储的支持…

软考笔记——10.项目管理

进度管理 进度管理就是采用科学的方法&#xff0c;确定进度目标&#xff0c;编制进度计划和资源供应计划&#xff0c;进行进度控制&#xff0c;在与质量、成本目标协调的基础上&#xff0c;实现工期目标。 具体来说&#xff0c;包括以下过程&#xff1a; (1) 活动定义&#…

(stm32)低功耗模式

低功耗模式 执行哪个低功耗模式的程序判断流程 标志位设置操作一定要在WFI/WFE之前&#xff0c;调用此指令后立即进入睡眠判断流程 模式对比 睡眠模式 停止模式 待机模式

Effective C++学习笔记(8)

目录 条款49&#xff1a;了解new-handler的行为条款50&#xff1a;了解new和delete的合理替换时机条款51&#xff1a;编写new和delete时需固守常规条款52&#xff1a;写了placement new也要写placement delete条款53&#xff1a;不要轻忽编译器的警告条款54&#xff1a;让自己熟…

智能楼宇综合布线实训室建设方案

一、楼宇智能综合布线实训室方案概述 楼宇智能综合布线实训室方案旨在为学生提供一个真实的学习和实践环境&#xff0c;以培养他们在楼宇智能综合布线领域的实际操作能力和技能。以下是一个概述&#xff1a; 1. 培养目标&#xff1a;培养学生在楼宇智能综合布线方面的综合能力…

LeetCode150道面试经典题-- 环形链表(简单)

1.题目 给你一个链表的头节点 head &#xff0c;判断链表中是否有环。 如果链表中有某个节点&#xff0c;可以通过连续跟踪 next 指针再次到达&#xff0c;则链表中存在环。 为了表示给定链表中的环&#xff0c;评测系统内部使用整数 pos 来表示链表尾连接到链表中的位置&…

React2023电商项目实战 - 1.项目搭建

古人学问无遗力&#xff0c;少壮工夫老始成。 纸上得来终觉浅&#xff0c;绝知此事要躬行。 —— 陆游《《冬夜读书示子聿》》 系列文章目录 项目搭建App登录及网关App文章自媒体平台&#xff08;博主后台&#xff09;内容审核(自动) 文章目录 系列文章目录一、项目介绍1.页面…

Smartbi 李代:人尽其才、数尽其用,Smartbi Eagle智慧数据运营平台全新亮相

数据是企业数字化转型的基石&#xff0c;也是赢得未来的核心资产和竞争力。数字化转型的关键&#xff0c;是在全公司建立一种数据驱动的组织和机制&#xff0c;营造数据文化的氛围&#xff0c;让更多的用户、在更多的场景中&#xff0c;有意愿、有能力使用数据&#xff0c;从而…

ssm+vue基于java的健身房管理系统源码和论文PPT

ssmvue基于java的健身房管理系统源码和论文PPT015 开发工具&#xff1a;idea 数据库mysql5.7(mysql5.7最佳) 数据库链接工具&#xff1a;navcat,小海豚等 开发技术&#xff1a;java ssm tomcat8.5 摘 要 现代经济快节奏发展以及不断完善升级的信息化技术&#xff0c;让传统…

手机出现 不读卡 / 无信号时应该怎么办?

当手机屏幕亮起&#xff0c;一般在屏幕最上方都会有代表手机卡状态的显示&#xff0c;其中网络信号和读卡状态的标识&#xff0c;依旧有很多人分不太清&#xff0c;更不清楚改怎么办了。 1、当我们的手机里有两张卡时&#xff0c;则会有两个信号显示 2、信号状态一般是由短到…

什么是合成数据(Synthetic Data)?

关于合成数据您需要知道的一切 推出人工智能&#xff08;AI&#xff09;的企业在为其模型采集足够的数据方面会遇到一个主要障碍。对于许多用例来说&#xff0c;正确的数据根本不可用&#xff0c;或者获取数据非常困难且成本高昂。在创建AI模型时&#xff0c;数据缺失或不完整…

人尽其才、数尽其用,Smartbi Eagle智慧数据运营平台全新亮相

数据是企业数字化转型的基石&#xff0c;也是赢得未来的核心资产和竞争力。数字化转型的关键&#xff0c;是在全公司建立一种数据驱动的组织和机制&#xff0c;营造数据文化的氛围&#xff0c;让更多的用户、在更多的场景中&#xff0c;有意愿、有能力使用数据&#xff0c;从而…

Android设备通过蓝牙HID技术模拟键盘实现

目录 一&#xff0c;背景介绍 二&#xff0c;技术方案 2.1 获取BluetoothHidDevice实例 2.2 注册/解除注册HID实例 2.3 Hid report description描述符生成工具 2.4 键盘映射表 2.5 通过HID发送键盘事件 三&#xff0c;实例 一&#xff0c;背景介绍 日常生活中&#xff0…

面试热题(单词搜索)

给定一个 m x n 二维字符网格 board 和一个字符串单词 word 。如果 word 存在于网格中&#xff0c;返回 true &#xff1b;否则&#xff0c;返回 false 。 单词必须按照字母顺序&#xff0c;通过相邻的单元格内的字母构成&#xff0c;其中“相邻”单元格是那些水平相邻或垂直相…

【100天精通python】Day37:GUI界面编程_PyQT从入门到实战(上)

目录 专栏导读 1 PyQt6 简介&#xff1a; 1.1 安装 PyQt6 和相关工具&#xff1a; 1.2 PyQt6 基础知识&#xff1a; 1.2.1 Qt 的基本概念和组件&#xff1a; 1.2.2 创建和使用 Qt 窗口、标签、按钮等基本组件 1.2.3 布局管理器&#xff1a;垂直布局、水平布局、网格布局…

记一次前端直接上传图片到oss报错

前端直接上传图片到阿里云oss,相关过程官网和网上资料已经很详细&#xff0c;不做赘述。 但这个过程比较复杂&#xff0c;前后端对接过程中很容易出现报错&#xff0c;这里遇到了以下报错&#xff0c;不容易排查。 请求显示net::ERR_NAME_NOT_RESOLVED错误&#xff0c;catch输…