PHP8的字符串操作3-PHP8知识详解
今天继续分享字符串的操作,前面说到了字符串的去除空格和特殊字符,获取字符串的长度,截取字符串、检索字符串。
今天继续分享字符串的其他操作。如:替换字符串、分割和合成字符串。

5、替换字符串
替换字符串就是对指定字符串中指定的字符进行替换。字符串的替换可以通过str_replace()函数、str_ireplace()函数和substr_replace()函数实现。
5.1、str_replace()函数
使用新的关键字替换原字符串中的关键字,可以使用str_replace()函数,其语法格式如下:
str_replace(要替换的字符串, 替换后的字符串, 要进行替换的字符串)
这个函数可以用来替换字符串中的特定字符、单词或者一段文本。它会在原始字符串中搜索要替换的字符串,并将其替换为指定的字符串。如果要替换的字符串在原始字符串中出现多次,它会将所有匹配到的字符串都替换。
示例代码:
<?php
$str = "Hello, World!";
$newStr = str_replace("World", "PHP", $str);
echo $newStr;
?>
以上代码在PHP8中运行的结果为:
Hello, PHP!
在这个例子中,我们将字符串中的"World"替换为"PHP",并将结果存储在 newStr 变量中。最后,我们使用echo语句输出newStr的值。
5.2、str_ireplace()函数
str_ireplace()函数和str_replace()函数使用方法一样,区别在于:str_replace()函数在操作是区分大小写,str_ireplace()函数不区分大小写。
str_ireplace()函数示例:
<?php
$str = "Hello, World!";
$newStr = str_ireplace("world", "PHP", $str);
echo $newStr;
?>
以上代码在PHP8中运行的结果为:
Hello, PHP!
5.3、substr_replace()函数
substr_replace() 函数是 PHP 中的一个字符串处理函数,用于替换指定位置的子字符串。
它的语法如下:
substr_replace(原始字符串,指定替换后的新字符串,替换起始位置 [起始值,长度])
参数说明:
a、要进行替换操作的原始字符串,可以是字符串也可以是数组。
b、指定替换后的新字符串。可以是一个字符串或一个数组。
c、要开始替换的位置索引。如果为负数,则表示从字符串末尾倒数的位置开始计算。
d、替换起始位置(可选):指定要替换的字符数量。默认情况下会替换到字符串的结尾。
e、返回值会返回一个替换后的字符串。你可以使用这个函数来在字符串中执行部分替换操作。
以下是一个示例使用 substr_replace() 函数的代码:
$str = "Hello, world!";
$newStr = substr_replace($str, "PHP", 7, 5);
echo $newStr;
以上代码在PHP8中输出的结果为:
Hello, PHP!
上述代码中,我们将原始字符串中索引位置 7 开始的 5 个字符替换为新内容 "PHP"。结果输出为 "Hello, PHP!"。
6、分割和合成字符串
在PHP8中提供了分割和合并字符串的函数。分割使用explode()函数,合并则使用implode()函数。
6.1、使用explode()函数分割字符串
explode() 函数是 PHP 中用于分割字符串的函数。它将一个字符串根据指定的分隔符拆分成多个子字符串,并返回一个数组。
它的语法如下所示:
explode( 边界分隔符,指定分割的字符串[限制返回的数组元素数量的可选参数])
修改描述如下:
a、边界分隔符可以是自己自定义的任意分隔符
b、将要分割的字符串,基本上都是数组
c、限制返回的数组元素数量的可选参数,
d、返回值:返回的都是原字符串的子字符串,
参考代码:
<?php
$a = "html,css,javascript";
$b = explode(",", $a);foreach ($b as $value) {echo $value . "<br>";
}
?>
在PHP8中运行结果为:
html
css
javascript
这样会使用逗号作为分隔符来将 $a 字符串分割成数组,并通过 foreach 循环遍历输出每个元素。
6.2、使用implode()函数合并字符串
使用implode()函数可以将数组的内容,合成一个新的字符串。
如果你想要将一个数组的元素合并成一个字符串,可以使用 implode() 函数。该函数接受两个参数:分隔符和数组。语法如下:
implode(分隔符,被合并的数组)
下面是使用 implode() 函数来合并字符串的示例代码:
<?php
$array = ["html", "css", "javascript"];
$string = implode(",", $array);echo $string;
?>
在这个例子中,我们创建了一个包含三个元素的数组 $array,然后使用逗号作为分隔符调用 implode() 函数将数组元素合并成一个字符串,并将结果赋值给变量 $string。最后,通过 echo 语句输出合并后的字符串。
在PHP8中,输出结果是:
html,css,javascript
7、统计字符串中单词的个数
统计字符串中单词的个数,比统计字符的个数更有意义。在PHP8中使用str_word_count()函数统计字符串中的单词个数。仅对英文有效,对中文汉字无效。
示范代码:
<?php
$a = "你好,世界";
$b = "hello world";
echo "字符串a的汉字个数为:".str_word_count($a);
echo "<br>";
echo "字符串b的单词个数为:".str_word_count($b);
?>
在PHP8中运行的结果为:
字符串a的汉字个数为:0
字符串b的单词个数为:2
到此为止,通过str_replace()函数、str_ireplace()函数和substr_replace()函数实现字符串的替换。使用explode()函数分割字符串和使用implode()函数合并字符串、使用str_word_count()函数统计字符串中的单词个数就讲解完毕了。
相关文章:
PHP8的字符串操作3-PHP8知识详解
今天继续分享字符串的操作,前面说到了字符串的去除空格和特殊字符,获取字符串的长度,截取字符串、检索字符串。 今天继续分享字符串的其他操作。如:替换字符串、分割和合成字符串。 5、替换字符串 替换字符串就是对指定字符串中…...
Unity VR:XR Interaction Toolkit 输入系统(Input System):获取手柄的输入
文章目录 📕教程说明📕Input System 和 XR Input Subsystem(推荐 Input System)📕Input Action Asset⭐Actions Maps⭐Actions⭐Action Properties🔍Action Type (Value, Button, Pass through) ⭐Binding …...
智慧工地一体化云平台源码:监管端、工地端、危大工程、智慧大屏、物联网、塔机、吊钩、升降机
智慧工地解决方案依托计算机技术、物联网、云计算、大数据、人工智能、VR&AR等技术相结合,为工程项目管理提供先进技术手段,构建工地现场智能监控和控制体系,弥补传统方法在监管中的缺陷,最终实现项目对人、机、料、法、环的全…...
C# 表达式体方法 C#算阶乘
//表达式体方法private int Add(int a, int b) > a b;[Fact]public void Test(){var result1 Factorial(1);//1var result2 Factorial(2);//2var result3 Factorial(3);//6var result4 Factorial(4);//24var result5 Factorial(5);//120var result6 Add(100, 200);//…...
互联网发展历程:保护与隔离,防火墙的安全壁垒
互联网的快速发展,不仅带来了便利和连接,也引发了越来越多的安全威胁。在数字时代,保护数据和网络安全变得尤为重要。然而,在早期的网络中,安全问题常常让人担忧。 安全问题的困扰:网络威胁日益增加 随着互…...
基于IMX6ULLmini的linux裸机开发系列七:中断处理流程
中断上下文 cpu通过内核寄存器来运行指令并进行数据的读写处理的,它在进入中断前一个时刻的具体值,称为中断上下文 中断上下文是指CPU在进入中断之前保存的寄存器状态和其他相关信息。当CPU接收到中断请求时,它会保存当前正在执行的指令的状…...
Postman软件基本用法:浏览器复制请求信息并导入到软件从而测试、发送请求
本文介绍在浏览器中,获取网页中的某一个请求信息,并将其导入到Postman软件,并进行API请求测试的方法。 Postman是一款流行的API开发和测试工具,它提供了一个用户友好的界面,用于创建、测试、调试和文档化API。本文就介…...
react go实现用户历史登录列表页面
refer: http://ip-api.com/ 1.首先需要创建一个保存用户历史的登录的表,然后连接go 2.在用户登录的时候,获取用户的IP IP位置,在后端直接处理数据即可(不需要在前端传递数据) (1)增加路由&am…...
如何做好服务性能测试
一、什么是性能测试 新功能上线或切换底层数据库或扩容调优,根据实际业务场景的需要,做必要的性能压测,收集性能数据,作为上线的基准报告。 性能测试一般分一下几个阶段: 1. 性能测试 并发量小(jmeter 并…...
速通蓝桥杯嵌入式省一教程:(五)用按键和屏幕实现嵌入式交互系统
一个完整的嵌入式系统,包括任务执行部分和人机交互部分。在前四节中,我们已经讲解了LED、LCD和按键,用这三者就能够实现一个人机交互系统,也即搭建整个嵌入式系统的框架。在后续,只要将各个功能加入到这个交互系统中&a…...
虚拟拍摄,如何用stable diffusion制作自己的形象照?
最近收到了某活动的嘉宾邀请,我将分享: 主题:生成式人工智能的创新实践 简要描述:从品牌营销、智能体、数字内容创作、下一代社区范式等方面,分享LLM与图像等生成式模型的落地应用与实践经验。 领域/研究方向ÿ…...
开启AI创新之旅!“华为云杯”2023人工智能应用创新大赛等你来挑战
简介 近年来,人工智能技术的发展如日中天,深刻地改变着我们的生活方式和产业格局。 为了培养AI人才,持续赋能AI企业,推进国家新一代人工智能开放创新平台建设,打造更加完善的AI技术创新生态,华为…...
npm和node版本升级教程
cmd中查看本地安装的node版本 node -v //查询node的位置 where node2.官网下载所需要的node版本,安装在刚查出来的文件夹下,即覆盖掉原来的版本 3.查看node版本是否已经更新 4.查看npm版本是否和node版本相匹配 cnpm install -g npm...
C++入门篇9---list
list是带头双向循环链表 一、list的相关接口及其功能 1. 构造函数 函数声明功能说明list(size_type n,const value_type& valvalue_type())构造的list中包含n个值为val的元素list()构造空的listlist(const list& x)拷贝构造list(InputIterator first, InputIterator…...
STM32基于CubeIDE和HAL库 基础入门学习笔记:物联网项目开发流程和思路
文章目录: 第一部分:项目开始前的计划与准备 1.项目策划和开发规范 1.1 项目要求文档 1.2 技术实现文档 1.3 开发规范 2.创建项目工程与日志 第二部分:调通硬件电路与驱动程序 第三部分:编写最基础的应用程序 第四部分&…...
Hive on Spark (1)
spark中executor和driver分别有什么作用? Spark中Executor 在 Apache Spark 中,Executor 是分布式计算框架中的一个关键组件,用于在集群中执行具体的计算任务。每个 Executor 都在独立的 JVM 进程中运行,可以在集群的多台机器上…...
PostgreSQL基本操作总结
安装按PostgreSQL数据库后,会默认创建用户postgres和数据库postgres,这个用户是超级用户,权限最高,可以创建其他用户和权限,在实际开发过程中,会新创建用户和业务数据库,本文主要介绍用户权限和…...
Jakarta 的 Servlet 下BeanUtils的日期处理 和JSTL 的使用
jsp优于性能等问题已经不被spring boot等支持,如果想使用jsp和jstl标签库需要引入一下依赖。 <!-- 用jakarta.servlet.jsp.jstl,用org.glassfish.web--><dependency><groupId>jakarta.servlet.jsp.jstl</groupId><art…...
聚焦电力行业CentOS迁移,麒麟信安受邀参加第六届电力信息通信新技术大会暨数字化发展论坛并发表主题演讲
为加快推进“双碳”目标下的新型能源体系和新型电力系统建设,深化新一代数字技术与电力业务的融合发展,促进电力行业关键技术自主创新、安全可控,助力电力企业数字化转型升级和高质量发展,2023年8月9-11日,第六届电力信…...
华为OD真题--分月饼--带答案
1. 华为OD机考题 答案 2023华为OD统一考试(AB卷)题库清单-带答案(持续更新) 2023年华为OD真题机考题库大全-带答案(持续更新) 2. 面试题 一手真实java面试题:2023年各大公司java面试真题汇总--…...
在HarmonyOS ArkTS ArkUI-X 5.0及以上版本中,手势开发全攻略:
在 HarmonyOS 应用开发中,手势交互是连接用户与设备的核心纽带。ArkTS 框架提供了丰富的手势处理能力,既支持点击、长按、拖拽等基础单一手势的精细控制,也能通过多种绑定策略解决父子组件的手势竞争问题。本文将结合官方开发文档,…...
关于nvm与node.js
1 安装nvm 安装过程中手动修改 nvm的安装路径, 以及修改 通过nvm安装node后正在使用的node的存放目录【这句话可能难以理解,但接着往下看你就了然了】 2 修改nvm中settings.txt文件配置 nvm安装成功后,通常在该文件中会出现以下配置&…...
【JVM】- 内存结构
引言 JVM:Java Virtual Machine 定义:Java虚拟机,Java二进制字节码的运行环境好处: 一次编写,到处运行自动内存管理,垃圾回收的功能数组下标越界检查(会抛异常,不会覆盖到其他代码…...
Objective-C常用命名规范总结
【OC】常用命名规范总结 文章目录 【OC】常用命名规范总结1.类名(Class Name)2.协议名(Protocol Name)3.方法名(Method Name)4.属性名(Property Name)5.局部变量/实例变量(Local / Instance Variables&…...
Module Federation 和 Native Federation 的比较
前言 Module Federation 是 Webpack 5 引入的微前端架构方案,允许不同独立构建的应用在运行时动态共享模块。 Native Federation 是 Angular 官方基于 Module Federation 理念实现的专为 Angular 优化的微前端方案。 概念解析 Module Federation (模块联邦) Modul…...
mysql已经安装,但是通过rpm -q 没有找mysql相关的已安装包
文章目录 现象:mysql已经安装,但是通过rpm -q 没有找mysql相关的已安装包遇到 rpm 命令找不到已经安装的 MySQL 包时,可能是因为以下几个原因:1.MySQL 不是通过 RPM 包安装的2.RPM 数据库损坏3.使用了不同的包名或路径4.使用其他包…...
SAP学习笔记 - 开发26 - 前端Fiori开发 OData V2 和 V4 的差异 (Deepseek整理)
上一章用到了V2 的概念,其实 Fiori当中还有 V4,咱们这一章来总结一下 V2 和 V4。 SAP学习笔记 - 开发25 - 前端Fiori开发 Remote OData Service(使用远端Odata服务),代理中间件(ui5-middleware-simpleproxy)-CSDN博客…...
Python基于历史模拟方法实现投资组合风险管理的VaR与ES模型项目实战
说明:这是一个机器学习实战项目(附带数据代码文档),如需数据代码文档可以直接到文章最后关注获取。 1.项目背景 在金融市场日益复杂和波动加剧的背景下,风险管理成为金融机构和个人投资者关注的核心议题之一。VaR&…...
动态 Web 开发技术入门篇
一、HTTP 协议核心 1.1 HTTP 基础 协议全称 :HyperText Transfer Protocol(超文本传输协议) 默认端口 :HTTP 使用 80 端口,HTTPS 使用 443 端口。 请求方法 : GET :用于获取资源,…...
Python Ovito统计金刚石结构数量
大家好,我是小马老师。 本文介绍python ovito方法统计金刚石结构的方法。 Ovito Identify diamond structure命令可以识别和统计金刚石结构,但是无法直接输出结构的变化情况。 本文使用python调用ovito包的方法,可以持续统计各步的金刚石结构,具体代码如下: from ovito…...
