php常用字符串查找函数strstr()与strpos()实例分析


Posted in PHP onJune 21, 2019

本文实例讲述了php常用字符串查找函数strstr()与strpos()。分享给大家供大家参考,具体如下:

一句话使用strpos判断 ===!==,这样才能达到预期的效果,性能要比strstr要好,只是判断是否包含某个字符串就用这个了。

string strstr ( string $haystack , mixed $needle [, bool $before_needle = false ] )

1、$haystack被查找的字符串,$needle要查找的内容
2、如查找到则返回字符串的一部分,如没找到则返回FALSE
3、该函数区分大小写,如果想要不区分大小写,请使用 stristr()
4、如果你仅仅想确定needle是否存在于haystack中请使用速度更快、耗费内存更少的strpos()函数

<?php
 $email = 'name@example.com';
 $domain = strstr($email,'@');
 $name = strstr($email,'@',TRUE);
 $no_con = strstr($email,'99');
 echo $domain; //输出 @example.com
 echo $name;  //输出name 从 PHP 5.3.0 起
 var_dump($no_con); //如果没找到,则返回布尔值 FALSE
?>

运行结果:

@example.com
name
bool(false)

mixed strpos ( string $haystack , mixed $needle [, int $offset = 0 ] )

1、$haystack被查找的字符串,$needle要查找的内容
2、返回 needle 在 haystack 中首次出现的数字位置
3、该函数区分大小写,如果想要不区分大小写,请使用 stripos()
4、返回值,如找到的话,返回needle 存在于 haystack 字符串起始的位置(注意字符串位置是从0开始,而不是从1开始),没找到则返回FALSE,但也可能返回等同于 FALSE 的非布尔值

<?php
 $mystring = 'abc' ;
 $findme = 'a' ;
 $pos = strpos($mystring,$findme);
 echo $pos; //输出0,既是当前a的位置
?>

运行结果:

0

这里2个比较相似的函数,在这里简单介绍下,只需记住有这个函数即可,用时简单看下手册。

1、strrpos(),计算指定字符串在目标字符串中最后一次出现的位置

实例1 使用 ===

<?php
$mystring = 'abc';
$findme  = 'a';
$pos = strpos($mystring, $findme);

// 注意这里使用的是 ===。简单的 == 不能像我们期待的那样工作,
// 因为 'a' 是第 0 位置上的(第一个)字符。
if ($pos === false) {
  echo "The string '$findme' was not found in the string '$mystring'";
} else {
  echo "The string '$findme' was found in the string '$mystring'";
  echo " and exists at position $pos";
}
?>

实例2 使用 !==

<?php
$mystring = 'abc';
$findme  = 'a';
$pos = strpos($mystring, $findme);

// 使用 !== 操作符。使用 != 不能像我们期待的那样工作,
// 因为 'a' 的位置是 0。语句 (0 != false) 的结果是 false。
if ($pos !== false) {
   echo "The string '$findme' was found in the string '$mystring'";
     echo " and exists at position $pos";
} else {
   echo "The string '$findme' was not found in the string '$mystring'";
}
?>

实例3 使用位置偏移量

<?php
// 忽视位置偏移量之前的字符进行查找
$newstring = 'abcdef abcdef';
$pos = strpos($newstring, 'a', 1); // $pos = 7, 不是 0
?>

注释
Note: 此函数可安全用于二进制对象。

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

总结:注意这几个函数如果没找到时则会返回FALSE,故在判断两边是否相等时候(if),注意两边的类型,以上几个函数,是在PHP中比较常用的字符串查找函数了,如需更强大功能的话,如邮箱、手机号的匹配、验证的话,则需借助正则表达式完成。

希望本文所述对大家PHP程序设计有所帮助。

PHP 相关文章推荐
PHP 显示客户端IP与服务器IP的代码
Oct 12 PHP
UCenter 批量添加用户的php代码
Jul 17 PHP
php 备份数据库代码(生成word,excel,json,xml,sql)
Jun 23 PHP
深入解析php中的foreach函数
Aug 31 PHP
php与flash as3 socket通信传送文件实现代码
Aug 16 PHP
PHP实现货币换算的方法
Nov 29 PHP
PHP中使用register_shutdown_function函数截获fatal error示例
Apr 21 PHP
PHP MSSQL 分页实例
Apr 13 PHP
利用php输出不同的心形图案
Apr 22 PHP
ThinkPHP打水印及设置水印位置的方法
Oct 14 PHP
php从数据库读取数据,并以json格式返回数据的方法
Aug 21 PHP
thinkphp5.1框架实现格式化mysql时间戳为日期的方式小结
Oct 10 PHP
php精度计算的问题解析
Jun 21 #PHP
laravel异步监控定时调度器实例详解
Jun 21 #PHP
apache集成php7.3.5的详细步骤
Jun 20 #PHP
PHP基础之输出缓冲区基本概念、原理分析
Jun 19 #PHP
PHP进阶学习之Geo的地图定位算法详解
Jun 19 #PHP
PHP进阶学习之依赖注入与Ioc容器详解
Jun 19 #PHP
yii2 在控制器中验证请求参数的使用方法
Jun 19 #PHP
You might like
PHP中对数据库操作的封装
2006/10/09 PHP
PHP中Header使用的HTTP协议及常用方法小结
2014/11/04 PHP
Symfony2创建页面实例详解
2016/03/18 PHP
gearman中任务的优先级和返回状态实例分析
2020/02/27 PHP
利用jQuery的$.event.fix函数统一浏览器event事件处理
2009/12/21 Javascript
js滚动条回到顶部的代码
2011/12/06 Javascript
解决js中window.open弹出的是上次的缓存页面问题
2013/12/29 Javascript
windows下安装nodejs及框架express
2015/08/07 NodeJs
javascript中tostring()和valueof()的用法及两者的区别
2015/11/16 Javascript
谈谈我对JavaScript中typeof和instanceof的深入理解
2015/12/25 Javascript
用原生js做单页应用
2017/01/17 Javascript
canvas实现十二星座星空图
2017/02/14 Javascript
javascript ES6中箭头函数注意细节小结
2017/02/17 Javascript
Vue中使用 setTimeout() setInterval()函数的问题
2018/09/13 Javascript
VUE实现移动端列表筛选功能
2019/08/23 Javascript
node省市区三级数据性能测评实例分析
2019/11/06 Javascript
element-ui中dialog弹窗关闭按钮失效的解决
2020/09/22 Javascript
[46:00]DOTA2上海特级锦标赛主赛事日 - 2 胜者组第一轮#4EG VS Fnatic第一局
2016/03/03 DOTA
跟老齐学Python之让人欢喜让人忧的迭代
2014/10/02 Python
Python基于回溯法子集树模板解决m着色问题示例
2017/09/07 Python
Python数据结构之单链表详解
2017/09/12 Python
Python使用requests及BeautifulSoup构建爬虫实例代码
2018/01/24 Python
只需7行Python代码玩转微信自动聊天
2019/01/27 Python
使用Python中的reduce()函数求积的实例
2019/06/28 Python
Ubuntu+python将nii图像保存成png格式
2019/07/18 Python
python查找特定名称文件并按序号、文件名分行打印输出的方法
2020/04/24 Python
Python+PyQt5实现灭霸响指功能
2020/05/25 Python
Python 读取位于包中的数据文件
2020/08/07 Python
python openCV自制绘画板
2020/10/27 Python
Reebonz中国官网:新加坡奢侈品购物网站
2017/03/17 全球购物
瑞典在互联网上最大的宠物商店:Animail
2020/10/31 全球购物
《跟踪台风的卫星》教学反思
2014/04/10 职场文书
项目经理任命书范本
2014/06/05 职场文书
自查自纠工作情况报告
2014/10/29 职场文书
Django操作cookie的实现
2021/05/26 Python
Go本地测试解耦任务拆解及沟通详解Go本地测试的思路沟通的重要性总结
2022/06/21 Golang