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

今日继续分享《php8的字符串操作》昨天一天都没有写多少,内容多,今天继续:

昨天分享的是1、使用trim()、rtrim()和ltrim()函数去除字符串首尾空格和特殊字符。2、使用strlen()函数和mb_strlen()函数获取字符串的长度。

PHP8的字符串操作

3、截取字符串

PHP对字符串的截取可以使用内置函数substr()和mb_substr()实现。

通常情况下,substr()函数用于截取英文字符。mb_substr()函数用于带有中文字符的字符串。

3.1、substr()函数

在一个字符串中截取一个子串,就是字符串截取。使用substr()函数,可以完成字符串的截取。

substr()函数有3个参数,分别是目标字符串、起始位置和截取长度。语法格式如下:

substr(目标字符串,起始位置,截取长度)

其中:

1、目标字符串是某个字符串变量的变量名,起始位置和截取长度都是整数。

2、如果都是正数,起始位置的整数必须小于截取长度的整数,否则函数返回值为假。

3、如果截取的字符串为负数,则意味着是从起始位置开始往后,截取从目标字符串结尾算起的长度数的字符以外的所有字符。

4、字符串的起死位置是从0开始计算的,也就是字符串中第一个字符的位置表示为0。

下面,本站制作的一个PHP字符串起始位置的示意图,让大家更好的进行理解:

Image

使用substr()函数截取字符串长度,参考代码:

<?php
$a = "Welcome to China";
echo substr($a,0); //从第1个字符开始截取
echo "<br>";
echo substr($a,3,10); //从第4个字符开始截取10个字符
echo "<br>";
echo substr($a,-5,5); //从倒数第5个字符开始截取5个字符
echo "<br>";
echo substr($a,0,-5); //从第1个字符,到倒数第5个字符
?>

 在PHP8中运行以上程序的结果是:

Welcome to China
come to Ch
China
Welcome to

3.2、mb_substr()函数

mb_substr()函数用于截取,带有汉字字符的字符串,语法格式如下:

mb_substr(目标字符串,起始位置,截取长度,$encoding = 编码)

其中:

1、目标字符串是某个字符串变量的变量名,起始位置和截取长度都是整数。

2、起始位置就是要截取的第一个位置。如果长度为正数就是正序,如果长度为负数就是反序。

3、encoding表示字符编码,如果省略,则使用内部字符编码。

4、返回值是根据目标字符串和起始位置,截取长度等返回目标字符串的一部分。

代码示范:

<?php
$a = "我是中国人,我爱自己的祖国";
echo mb_substr($a,0); //从第1个字符开始截取
echo "<br>";
echo mb_substr($a,3,10); //从第4个字符开始截取10个字符
echo "<br>";
echo mb_substr($a,-5,5); //从倒数第5个字符开始截取5个字符
echo "<br>";
echo mb_substr($a,0,-5); //从第1个字符,到倒数第5个字符
?>

在PHP8中运行的结果如下:

我是中国人,我爱自己的祖国
国人,我爱自己的祖国
自己的祖国
我是中国人,我爱

4、检索字符串

检索字符串就是在一个字符串中查找另一个字符串,就像我们在文本编辑器里面查找关键字一样。

要想检索字符串,我们可以使用以下内置函数。

4.1、strstr()函数

获取一个指定字符串在另一个字符串中,首次出现的位置到末尾的子字符串,可以使用strstr()函数,语法如下:

strstr(目标字符串,查找的字符串)

示例:

<?php
$a = "我正在学习PHP8,你要学习吗?";
echo strstr($a,"PHP");
?>

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

PHP8,你要学习吗?

上面的查找的字符串是有大小写区分的,我修改大小写就不能正确显示了。

<?php
$a = "我正在学习PHP8,你要学习吗?";
echo strstr($a,"php");
?>

在PHP8中运行结果为:空(什么都不显示),要想不区分大小写,可以使用stristr()函数。

4.2、stristr()函数

stristr()函数和strstr()函数一样,就是可以不区分大小写,如下代码:

<?php
$a = "我正在学习PHP8,你要学习吗?";
echo stristr($a,"php");
?>

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

PHP8,你要学习吗?

4.3、strpos()函数

strpos()函数用于查找字符串首次出现的位置,返回数字首次出现的位置。strpos()函数语法如下:

strpos(目标字符串,查找的字符串)

  参考代码如下:

<?php
$a = "我正在学习PHP8,你要学习吗?";
echo strpos($a,"PHP");
?>                                                                                                                                                   

在PHP8中运行结果如下:

15

今天就写到这里,字符串的操作还没有写完,明天继续写PHP8的字符串操作3。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Spring Boot(六十四):SpringBoot集成Gzip压缩数据

1 实现思路 2 实现 2.1 创建springboot项目 2.2 编写一个接口,功能很简单就是传入一个Json对象并返回 package com.example.demo.controller;import com.example.demo.entity.Advertising; import lombok.Data; import lombok.extern.slf4j.Slf4j; import org.springf…

【论文阅读】基于深度学习的时序预测——FEDformer

系列文章链接 论文一&#xff1a;2020 Informer&#xff1a;长时序数据预测 论文二&#xff1a;2021 Autoformer&#xff1a;长序列数据预测 论文三&#xff1a;2022 FEDformer&#xff1a;长序列数据预测 论文四&#xff1a;2022 Non-Stationary Transformers&#xff1a;非平…

嵌入式学习之C语言指针部分复习

今天主要把C语言的指针部分再次认真的复习了一下&#xff0c;对于指针的整体框架有了更加深刻的理解&#xff0c;特别要重点区分函数指针&#xff0c;指针函数&#xff0c;数组指针&#xff0c;指针数组部分&#xff0c;对于这部分的应用回非常的重要&#xff0c;而且C语言指针…

Unity 工具 之 Azure 微软SSML语音合成TTS流式获取音频数据的简单整理

Unity 工具 之 Azure 微软SSML语音合成TTS流式获取音频数据的简单整理 目录 Unity 工具 之 Azure 微软SSML语音合成TTS流式获取音频数据的简单整理 一、简单介绍 二、实现原理 三、实现步骤 四、关键代码 一、简单介绍 Unity 工具类&#xff0c;自己整理的一些游戏开发可…

WSL2 Ubuntu子系统安装cuda+cudnn+torch

文章目录 前言一、安装cudncudnn安装pytorch 前言 确保Windows系统版本高于windows10 21H2或Windows11&#xff0c;然后在Windows中将显卡驱动升级到最新即可&#xff0c;WSL2已支持对显卡的直接调用。 一、安装cudncudnn 配置cuda环境&#xff0c;WSL下的Ubuntu子系统的cu…

Flink 流式读写文件、文件夹

文章目录 一、flink 流式读取文件夹、文件二、flink 写入文件系统——StreamFileSink三、查看完整代码 一、flink 流式读取文件夹、文件 Apache Flink针对文件系统实现了一个可重置的source连接器&#xff0c;将文件看作流来读取数据。如下面的例子所示&#xff1a; StreamExe…

emqx-5.1.4开源版使用记录

emqx-5.1.4开源版使用记录 windows系统安装eqmx 去官网下载 emqx-5.1.4-windows-amd64.zip&#xff0c;然后找个目录解压 进入bin目录,执行命令启动emqx 执行命令 emqx.cmd start使用emqx 访问内置的web管理页面 浏览器访问地址 http://localhost:18083/#/dashboard/overv…

H3C交换机MIB库

非常齐全的官方MIB库 为Zabbix监控华三交换机提供诸多方便。 如下信息提供下载链接和下载账号: MIB清单下载:交换机-新华三集团-H3C MIB库:MIB-新华三集团-H3C

Aspera替代方案:探索这些安全且可靠的文件传输工具

科技的发展日新月异&#xff0c;文件的传输方式也在不断地更新换代。传统的邮件附件、FTP等方式已经难以满足人们对于传输速度和安全性的需求了。近年来&#xff0c;一些新兴的文件传输工具受到了人们的关注&#xff0c;其中除了知名的Aspera之外&#xff0c;还有许多可靠安全的…

梅赛德斯-奔驰将成为首家集成ChatGPT的汽车制造商

ChatGPT的受欢迎程度毋庸置疑。OpenAI这个基于人工智能的工具&#xff0c;每天能够吸引无数用户使用&#xff0c;已成为当下很受欢迎的技术热点。因此&#xff0c;有许多公司都在想方设法利用ChatGPT来提高产品吸引力&#xff0c;卖点以及性能。在汽车领域&#xff0c;梅赛德斯…

springBoot 集中配置管理

springBoot 集中配置管理 项目配置如果上线项目&#xff0c;运维或者开发者可以直接和jar包同目录下创建文件&#xff0c;然后更改属性 项目配置 创建文件&#xff0c;调整配置如果上线项目&#xff0c;运维或者开发者可以直接和jar包同目录下创建文件&#xff0c;然后更改 属…

Redis实现共享Session

Redis实现共享Session 分布式系统中&#xff0c;sessiong共享有很多的解决方案&#xff0c;其中托管到缓存中应该是最常用的方案之一。 1、引入依赖 <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM…

undefined reference to `dlopen‘ ‘SSL_library_init‘ `X509_certificate_type‘

使用Crow的时候需要注意crow依赖asio依赖OpenSSL&#xff0c;asio要求1.22以上版本&#xff0c;我使用的是1.26.0&#xff1b; 这个版本的asio要求OpenSSL是1.0.2&#xff0c;其他版本我得机器上编不过&#xff0c;ubuntu上默认带的OpenSSL是1.1.1; 所以我下载了OPENSSL1.2.0重…

QT使用QML实现地图绘制虚线

QML提供了MapPolyline用于在地图上绘制线段&#xff0c;该线段是实线&#xff0c;因此我使用Canvas自定义绘制的方式在地图上绘制线段&#xff0c;如图&#xff1a; 鼠标在地图上点击后&#xff0c;在点击位置添加图标 &#xff0c;当有多个图标被添加到地图上后&#xff0c;计…

mysql-事务特性以及隔离机制

一.ACID 事务&#xff08;Transaction&#xff09;是访问和更新数据库的程序执行单元&#xff1b;事务中可能包含一个或多个sql语句&#xff0c;这些语句要么都执行&#xff0c;要么都不执行。 1.逻辑架构和存储引擎 如上图所示&#xff0c;MySQL服务器逻辑架构从上往下可以分…

对应分析介绍及SPSS案例分析

在开展统计分析的过程中&#xff0c;分类变量&#xff08;定序和定类变量&#xff09;是我们研究的一个重点。通常我们分析分类变量间关系时&#xff0c;最常用的分析方法是卡方检验&#xff0c;其次是逻辑回归和对数线性模型等。 如果类别变量的分类较少&#xff0c;我们可以…

构建 LVS-DR 群集、配置nginx负载均衡。

目录 一、基于 CentOS 7 构建 LVS-DR 群集 1、准备四台虚拟机 2、配置负载调度器&#xff08;192.168.2.130&#xff09; 3、部署共享存储&#xff08;192.168.2.133&#xff09; 4、配置两个Web服务器&#xff08;192.168.2.131、192.168.2.132&#xff09; 测试集群 二…

PHP最简单自定义自己的框架数据库封装调用(五)

1、实现效果调用实现数据增删改查封装 2、创建数据表 CREATE TABLE test (id int(11) NOT NULL AUTO_INCREMENT,name varchar(30) DEFAULT NULL,age int(11) DEFAULT NULL,PRIMARY KEY (id) ) ENGINEMyISAM AUTO_INCREMENT4 DEFAULT CHARSETutf8;3、index.php 入口定义数据库…

云服务 Ubuntu 20.04 版本 使用 Nginx 部署静态网页

所需操作&#xff1a; 1.安装Nginx 2.修改配置文件 3.测试、重启 Nginx 4.内部修改防火墙 5.配置解析 6.测试是否部署成功 1.安装Nginx // 未使用 root 账号 apt-get update // 更新apt-get install nginx // 安装 nginx 1.1.测试是否安装没问题 在网页上输入云服务的公网…

山西电力市场日前价格预测【2023-08-16】

日前价格预测 预测明日&#xff08;2023-08-16&#xff09;山西电力市场全天平均日前电价为363.90元/MWh。其中&#xff0c;最高日前电价为430.17元/MWh&#xff0c;预计出现在19: 30。最低日前电价为318.33元/MWh&#xff0c;预计出现在13: 00。 价差方向预测 1&#xff1a; 实…