老程序员分享:PHPstripos()、strripos()和strrpos()使用方法和区别

简介: 老程序员分享:PHPstripos()、strripos()和strrpos()使用方法和区别

"

区别

stripos():查找字符串首次出现的位置(不区分大小写)

写法:stripos ( string $haystack , string $needle 【, int $offset = 0 】 )

haystack:在该字符串中查找。

needle:注意 needle 可以是一个单字符或者多字符的字符串。如果 needle 不是一个字符串,那么它将被转换为整型并被视为字符顺序值。

offset:可选的 //代码效果参考:https://v.youku.com/v_show/id_XNjQwMDEzODE1Ng==.html

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()用法示例:

结果:

我们在(ababcd)发现(aB)最后一次出现位置是在(2)

strrpos() :计算指定字符串在目标字符串中最后一次出现的位置,区分大小写!

写法:strrpos ( string $haystack , string //代码效果参考:https://v.youku.com/v_show/id_XNjQwMDEzOTUzMg==.html

$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() 使用方法和区别

分享到:

新浪微博

腾讯微博

更多


"
image.png
相关文章
|
JavaScript
原生js实现复选框(全选/全不选/反选)效果【含完整代码】
原生js实现复选框(全选/全不选/反选)效果【含完整代码】
473 1
QGS
Debian11,Ubuntu20.04部署zabbix6.0解决中文乱码问题
记Debian11,Ubuntu20.04部署zabbix6.0解决中文乱码问题
QGS
1070 0
Debian11,Ubuntu20.04部署zabbix6.0解决中文乱码问题
|
5月前
|
机器学习/深度学习 存储 缓存
DNS解析中TTL参数深度解析
本文深度解析DNS解析中的TTL参数,涵盖技术规范、优化策略及工程实践。内容包括TTL定义、分层缓存机制、企业配置建议、变更管理流程、特殊场景应对方案及前沿技术演进,助你全面掌握TTL优化方法。
559 1
|
SQL 自然语言处理 数据库
XiYan-SQL:一种多生成器集成的Text-to-SQL框架
XiYan-SQL 是一种创新的多生成器集成Text-to-SQL框架,通过M-Schema增强模型对数据库结构的理解,结合ICL与SFT方法提升SQL生成质量和多样性,经实验证明在多个数据集上表现优异,特别是在Spider和SQL-Eval上取得了领先成绩。
2307 7
|
数据挖掘 Python
【Python】已解决:Python pandas读取Excel表格某些数值字段结果为NaN问题
【Python】已解决:Python pandas读取Excel表格某些数值字段结果为NaN问题
1514 0
|
SQL 关系型数据库 MySQL
mysql:1153 Got a packet bigger than ‘max_allowed_packet’ bytes的解决方法
mysql:1153 Got a packet bigger than ‘max_allowed_packet’ bytes的解决方法
648 0
|
弹性计算 安全 数据安全/隐私保护
远程桌面连接Windows实例,提示“为安全考虑,已锁定该用户账户,原因是登录尝试或密码更改尝试过多”错误解决方案
远程桌面连接Windows实例,提示“为安全考虑,已锁定该用户账户,原因是登录尝试或密码更改尝试过多”错误解决方案
2735 0
|
设计模式 测试技术 PHP
深入解析 Laravel 中的依赖注入
【8月更文挑战第31天】
452 0
|
Docker 容器
docker desktop安装es并连接elasticsearch-head:5
以上就是在Docker Desktop上安装Elasticsearch并连接Elasticsearch-head:5的步骤。
716 2
|
Android开发
解决E/RecyclerView: No layout manager attached; skipping layout
解决E/RecyclerView: No layout manager attached; skipping layout
575 1

热门文章

最新文章