php判断子字符串位置,PHP怎样查询子字符串位置

字符串主要用于编程,字符串在存储上类似字符数组,所以它每一位的单个元素都是可以提取的。字符串或串(String)是由数字、字母、下划线组成的一串字符。一般记为 s=“a1a2···an”(n>=0)。它是编程语言中表示文本的数据类型。在程序设计中,字符串(string)为符号或数值的一个连续序列,如符号串(一串字符)或二进制数字串(一串二进制数字)。

本文讲述用PHP以及js查询字符串中子字符串所有出现位置

JS中indexOf()方法可返回某个指定的字符串值在字符串中首次出现的位置。运用第二个参数,循环调用就能获取到子串出现的所有位置。

/**

* 查询字符串中子字符串出现位置

* @param str

* @param substr

* @return {Array}

*/

function search_substr_pos(str, substr) {

var _search_pos = str.indexOf(substr), _arr_positions = [];

while (_search_pos > -1) {

_arr_positions.push(_search_pos);

_search_pos = str.indexOf(substr, _search_pos + 1);

}

return _arr_positions;

}

var str = "look at me,is there anything can prove that I am a good guy ?";

var $_pos_substr = search_substr_pos(str, 'e');//子串位置

var $_times_substr = $_pos_substr.length;//出现次数

console.log($_pos_substr); // [ 9, 16, 18, 37 ]

console.log($_times_substr); // 4

同理,PHP中使用strpos()方法

/**

* 查询字符串中子字符串出现位置

* @param $str

* @param $substr

* @return array

*/

function search_substr_pos($str, $substr)

{

$_search_pos = strpos($str, $substr);

$_arr_positions = array();

while ($_search_pos > -1) {

$_arr_positions[] = $_search_pos;

$_search_pos = strpos($str, $substr, $_search_pos + 1);

}

return $_arr_positions;

}

$str = "look at me,is there anything can prove that I am a good guy ?";

$_pos_substr = search_substr_pos($str, 'e');//子串位置

$_times_substr = count($_pos_substr);//出现次数

print_r($_pos_substr); // Array ( [0] => 9 [1] => 16 [2] => 18 [3] => 37 )

print_r($_times_substr); // 4

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

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

相关文章

icd11中文版精神障碍pdf_精神与行为障碍类别目录(ICD-11)

精神与行为障碍类别目录(ICD-11)神经发育障碍(7A00-7A43)7A00智力发育障碍,轻度7A01智力发育障碍,中度7A02智力发育障碍,重度7A03智力发育障碍,极重度7A04智力发育障碍,一过性7A0Z智力发育障碍,未特定7A10语…

VPC2007差分硬盘让小硬盘也能跑多个虚拟机

在Winos中看到http://bbs.winos.cn/thread-43391-1-1.html于 2008-9-2 16:02 发表基于Vmware Workstation 让你的小硬盘也能跑多个虚拟机个人认为有些做得不是很人性化。比如说我要把虚拟机母板封装好之后要修改为只读,而且还要隐藏起来。那么我再要创建虚拟机就要…

2017新生儿爆款名字出炉!90后的父母们最受欢迎的居然是.....

名字跟随一生因此很多家长在给孩子起名字的时候都相当谨慎除了日常迷信外不重名成为取名的重要考虑因素学校走廊里喊一声“子涵”,竟有3人回头!!你知道你家孩子的名字和多少人重名了吗?近日,江苏苏州一家科技公司发布《…

Kubernetes中分布式存储Rook-Ceph的使用:一个ASP.NET Core MVC的案例

在《Kubernetes中分布式存储Rook-Ceph部署快速演练》文章中,我快速介绍了Kubernetes中分布式存储Rook-Ceph的部署过程,这里介绍如何在部署于Kubernetes的ASP.NET Core MVC的应用程序中使用Rook-Ceph所创建的存储对象。构建ASP.NET Core MVC (.NET 5)应用…

php super和parent,parent()、parents()的用法区别

parent():所有匹配元素的父元素的组合parents():所有匹配元素的祖先元素(包括父元素)的组合关键代码如下:第1层DIV第2层DIV第3层DIVbbb$(function(){$("input[typebutton]").click(function(){$("div >b").parent("div"…

android 开启一个定时线程_Android 定时任务刷新的多种实现方式

1.采用Handle与线程的sleep(long)方法1) 定义一个Handler类,用于处理接受到的Message。Handler handler new Handler() {public void handleMessage(Message msg) {// 要做的事情super.handleMessage(msg);}};2) 新建一个实现Runnable接口的线程类,如下…

系统安全防护之UNIX下***检测方法

因为UNIX系统经常承当着关键任务,所以它经常是***者***的首选目标。于是检测***、保护系统安全是管理员的最为重要的任务之一。那么,在没有其它工具帮助的情况下,如何去判断系统当前的安全性?如何去发现***呢?下面给大家介绍一些常…

在Windows上安装Docker

背景Windows的Docker桌面是Microsoft Windows的Docker的社区版本。您可以从Docker Hub下载适用于Windows的Docker桌面。该页面包含有关在Windows 10 Pro,Enterprise和Education上安装Docker Desktop的信息。如果要查找有关在Windows 10 Home上安装Docker桌面的信息.…

全景图解高铁数据,谁是最有潜力的高铁城市?

经过十年的快速发展,高铁已成为人们日常出行的重要交通工具,“千里江陵一日还”早已变成现实,高铁改变的不仅是不断刷新的“中国速度”,更为区域与城市发展带来新的模式与机遇。高铁以高速、大容量、集约型、通勤化的特征&#xf…

对MATLAB课程教程的建议,关于MATLAB课程教学的几点探讨

练习。另一方面,对于如解线性方程组、求函数的极限、导数和数值积分等大量Matlab函数和指令的运用,不需要花过多的时间跟学生讲解,可以让学生自己查看Matlab的帮助文档,并上机练习。Matlab提供了几乎包含其所有内容和功能的在线帮…

原型链的理解_javascript之快速理解(原型链)

希望通过比较通俗易懂的讲解和简短的文字,让大家能快速理解什么是原型链,如果有不对的地方也请各位大佬快速纠正,一起共勉,使我们初学者快速进阶!话不多说,我们切入正题,按着我的步骤一步一步往…

VMware的网卡设置模式

Bridge:这种方式最简单,直接将虚拟网卡桥接到一个物理网卡上面,和linux下一个网卡 绑定两个不同地址类似,实际上是将网卡设置为混杂模式,从而达到侦听多个IP的能力. 在此种模式下,虚拟机内部的网卡(例如linux下的eth0)直接连到了物理网卡所在的网络上,可以想象为虚拟机和host机…

如何轻松将上亿的数据玩弄于股掌之中?

在日常生活中,我们经常会遇到排序问题:在打扑克牌的时候,原本拿到手上的牌是乱序的,我们会按照自己喜好的顺序一张一张排好手上的牌,最后看起来是顺眼的。比如小智打扑克牌会将自己手上的牌排成这样:小智排…

帮助阅读源码的8个技巧

大家好,我是Z哥。之前写了一篇关于阅读源码到底有多少价值的文章《阅读源码的真正价值》,反响还不错。在文中我向你阐明了阅读源码5个价值。面试在工作中更快地上手新项目给自己创造用新技术的机会完善知识体系学习别人的设计思路那么今天我就和你来聊聊…

php webshell开源,[github开源]webshell连接器--Jeshell

前言:以前连接webshell都是用一个好朋友写的Webshellsniper,但是昨天使用webshellsniper测试的时候,发现不能支持shell_exec()这个php函数,问了一下才知道,他写的默认是只用eval()和assert()函数的webshell。于是&…

robcad和catia是什么关系_proe/CATIA/UG/SolidWorks软件区别与联系

proe/CATIA/UG/SolidWorks软件区别与联系相信你一定清楚proe软件的用途,其实它在机械设计上面的应用也是非常广泛,与CATIA、UG、SolidWorks软件一样,这四大软件可谓是在机械设计应用非常广泛的软件,几乎在这个行业里的设计师无外乎…

活动目录组策略统一管理桌面

使用组策略实现企业统一桌面 在企业中为了实现企业形象的统一性,会要求在企业所有计算机上实现标准的桌面化配置环境。1、统一桌面壁纸在域控上建立存放背景图片的文件夹,将其设置为共享文件夹; 然后在开始—运行中GPedit.msc命令进入…

Kubernetes中分布式存储Rook-Ceph部署快速演练

最近在项目中有涉及到Kubernetes的分布式存储部分的内容,也抽空多了解了一些。项目主要基于Rook-Ceph运行,考虑到Rook-Ceph部署也不那么简单,官方文档的步骤起点也不算低,因此,在整合官方文档的某些步骤的基础上&#…

MATLAB向量化函数 举例,MatLab-向量化技巧

《MatLab-向量化技巧》由会员分享,可在线阅读,更多相关《MatLab-向量化技巧(10页珍藏版)》请在人人文库网上搜索。1、MatLab 向量化技巧家家 2007-05-17 13:53大家都知道MatLab是一种解释性语言,它的长处在矩阵运算。因此需要将问题尽量用矩阵…

IT人的八大修炼神器

看到2018年的KPI,你是否感到崩溃?在这个充满竞争的时代,你需要用最有效的方式,学习最有用的知识,来提高自身技能。小编特意为大家准备IT人的八大修炼神器,推荐能帮助我们提升技术的公众号,欢迎大…