PHP stripos()、strripos()和strrpos() 使用方法和区别
区别
stripos():查找字符串首次出现的位置(不区分大小写)
写法:stripos ( string $haystack , string $needle [, int $offset = 0 ] )
haystack:在该字符串中查找。
needle:注意 needle 可以是一个单字符或者多字符的字符串。如果 needle 不是一个字符串,那么它将被转换为整型并被视为字符顺序值。
offset:可选的 offset 参数,从字符此数量的开始位置进行搜索。 如果是负数,就从字符末尾此数量的字符数开始统计。
stripos()用法示例:
<?php
$findme = ‘a’;
$mystring1 = ‘xyz’;
$mystring2 = ‘ABC’;$pos1 = stripos($mystring1, $findme);
$pos2 = stripos($mystring2, $findme);// ‘a’ 当然不在 ‘xyz’ 中
if ($pos1 === false) {
echo “‘$mystring1’中找不到字符串’$findme'”;
}// 注意这里使用的是 ===。简单的 == 不能像我们期望的那样工作,
// 因为 ‘a’ 的位置是 0(第一个字符)。
if ($pos2 !== false) {
echo “我们发现’$findme’ 在’$mystring2’的第’$pos2’位”;
}
?>结果:’xyz’中找不到字符串’a’我们发现’a’ 在’ABC’的第’0’位
strripos():以不区分大小写的方式查找指定字符串在目标字符串中最后一次出现的位置。与 strrpos() 不同,strripos() 不区分大小写。
strripos()用法:strripos(string,find,start)
string是字符串,find是要被查找的,start是开始查找的位置
strripos()用法示例:
<?php
$haystack = 'ababcd';
$needle = 'aB'; $pos = strripos($haystack, $needle); if ($pos === false) {
echo "我们没有在($haystack)发现($needle)";
} else {
echo "我们在($haystack)发现($needle)最后一次出现位置是在($pos)";
}
?>
结果:
我们在(ababcd)发现(aB)最后一次出现位置是在(2)
strrpos() :计算指定字符串在目标字符串中最后一次出现的位置,区分大小写!
写法:strrpos ( string $haystack , string $needle [, int $offset = 0 ] ),haystack在此字符串中进行查找。needle如果 needle不是一个字符串,它将被转换为整型并被视为字符的顺序值。offset或许会查找字符串中任意长度的子字符串。负数值将导致查找在字符串结尾处开始的计数位置处结束。
strrpos()用法示例 :
检查字串是否存在
<?php
$pos = strrpos($mystring, “b”);
if ($pos === false) { // 注意: 三个等号
// 未发现…
}?>
使用偏移位置进行查找
<?php
$foo = “0123456789a123456789b123456789c”;var_dump(strrpos($foo, ‘7’, -5)); // 从尾部第 5 个位置开始查找
// 结果: int(17)var_dump(strrpos($foo, ‘7’, 20)); // 从第 20 个位置开始查找
// 结果: int(27)var_dump(strrpos($foo, ‘7’, 28)); // 结果: bool(false)
?>
博客地址:PHP stripos()、strripos()和strrpos() 使用方法和区别
PHP stripos()、strripos()和strrpos() 使用方法和区别的更多相关文章
- ThinkPHP的D方法和M方法的区别
M方法和D方法的区别 ThinkPHP 中M方法和D方法都用于实例化一个模型类,M方法 用于高效实例化一个基础模型类,而 D方法 用于实例化一个用户定义模型类. 使用M方法 如果是如下情况,请考虑使用 ...
- 正则表达式中的exec和match方法的区别
正则表达式中的exec和match方法的区别 字符串的正则方法有:match().replace().search().split() 正则对象的方法有:exec().test() 1.match m ...
- Hibernate框架之get和load方法的区别
我们在学习Hibernate框架时,经常会进行修改,删除操作,对于这些操作,我们都应该先加载对象,然后在执行或删除的操作,那么这里Hibernate提供了两种方法按照主键加载对象,也就是我要说的get ...
- [BS-27] 创建NSURL的几个方法的区别
创建NSURL的几个方法的区别 URL的基本格式 = 协议://主机地址/路径 URL和Path的区别 * URL:统一资源定位符,格式 “协议+主机名称+路径” 例如:[NSURL UR ...
- Java线程中yield与join方法的区别
长期以来,多线程问题颇为受到面试官的青睐.虽然我个人认为我们当中很少有人能真正获得机会开发复杂的多线程应用(在过去的七年中,我得到了一个机会),但是理解多线程对增加你的信心很有用.之前,我讨论了一个w ...
- OpenGL的glTexImage2D()与gluBuild2DMipmaps()的使用方法及区别
OpenGL的glTexImage2D()与gluBuild2DMipmaps()的使用方法及区别 说明:两者的都是生成纹理,即:将载入的位图文件(*.bmp)转换成纹理贴图. 1.glTexImag ...
- Java线程中run和start方法的区别
http://bbs.csdn.net/topics/350206340 Thread类中run()和start()方法的区别如下:run()方法:在本线程内调用该Runnable对象的run()方法 ...
- M方法和D方法的区别
M方法和D方法的区别 ThinkPHP 中M方法和D方法都用于实例化一个模型类,M方法 用于高效实例化一个基础模型类,而 D方法 用于实例化一个用户定义模型类. 使用M方法 如果是如下情况,请考虑使用 ...
- PHP中数组合并的两种方法及区别介绍
PHP数组合并两种方法及区别 如果是关联数组,如下: 复制代码代码如下: $a = array( 'where' => 'uid=1', 'order' => 'uid', ); $b = ...
随机推荐
- ansible playbook部署ELK集群系统
一.介绍 总共4台机器,分别为 192.168.1.99 192.168.1.100 192.168.1.210 192.168.1.211 服务所在机器为: redis:192.168.1.211 ...
- nginx rewrite规则last与break的区别
概要:break和last都能阻止继续执行后面的rewrite指令,last如果在location下的话,对于重写后的URI会重新匹配location,而break不会重新匹配location. 区别 ...
- 重命名文件或文件夹(mv命令与rename命令)
在Linux下重命名文件或目录,可以使用mv命令或rename命令,这里分享下二者的使用方法. mv命令既可以重命名,又可以移动文件或文件夹. 例子:将目录A重命名为B mv A B 例子:将/a目录 ...
- 你可能不熟悉的JS总结
暂时性死区 只要块级作用域存在let命令,它所声明的变量就"绑定"这个区域,不再受外部的影响.这么说可能有些抽象,举个例子: var temp = 123; if(true) { ...
- linux第四周
一.知识点总结 (一)用户态.内核态和中断 1.内核态:在高的执行级别下,代码可以执行特权指令,访问任意的物理地址,这时的CPU就对应内核态 2.用户态:在低级别的指令状态下,代码 只能在级别允许的特 ...
- Django安装及创建工程
Django MTV模型介绍 Django的MTV分别代表: Model(模型):负责业务对象与数据库的对象(ORM) Template(模版):负责如何把页面展示给用户 View(视图):负责业务逻 ...
- Spring容器基础xmlbeanfactory(一起看源码)
在spring中,如果你想创建容器少不了使用常见的xmlbeanfactory,ClassPathXmlApplicationContext,FileSystemXmlApplicationConte ...
- RabbitMQ入门(4)——路由(Routing)
这一篇我们将介绍如何订阅消息的一个子集.例如,我们只需要将日志中的error消息存储到日志文件中而将所有日志消息都在控制台打印出来. 绑定(Bindings) 在前面的例子中,我们创建了交换机和队列的 ...
- PE文件格式学习之PE头移位
以前刚开始学网络安全,是从免杀开始的.记得那时候杀毒软件还很弱.金山江民瑞星还存在. 那会什么原理也不懂,就一直瞎鼓捣.(后来转入渗透行列了) 这段时间一直在学PE格式,突然想起来以前很古老的PE文件 ...
- 关于SpringMVC中两种映射器不能共存的解决
首先大家都知道SpringMVC有两种映射器: org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping 和 org.spri ...