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 相关文章推荐
杏林同学录(三)
Oct 09 PHP
使用php实现快钱支付功能(涉及到接口)
Jul 01 PHP
PHP中redis的用法深入解析
Feb 20 PHP
php自定义函数截取汉字长度
May 15 PHP
Yii结合CKEditor实现图片上传功能
Jun 13 PHP
合并ThinkPHP配置文件以消除代码冗余的实现方法
Jul 22 PHP
PHP实现CSV文件的导入和导出类
Mar 24 PHP
php实现网站顶踩功能的完整前端代码
Jul 19 PHP
PHP实现长文章分页实例代码(附源码)
Feb 03 PHP
PHP学习笔记之php文件操作
Jun 03 PHP
php使用Jpgraph创建折线图效果示例
Feb 15 PHP
Thinkphp结合AJAX长轮询实现PC与APP推送详解
Jul 31 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中替换字符串中的空格为逗号','的方法
2014/06/09 PHP
PHPStrom 新建FTP项目以及在线操作教程
2016/10/16 PHP
Thinkphp5行为使用方法汇总
2017/12/21 PHP
extjs grid设置某列背景颜色和字体颜色的方法
2010/09/03 Javascript
探索Emberjs制作一个简单的Todo应用
2012/11/07 Javascript
JS操作iframe里的dom(实例讲解)
2014/01/29 Javascript
jQuery 和 CSS 的文本特效插件集锦
2014/12/12 Javascript
JavaScript制作windows经典扫雷小游戏
2015/03/31 Javascript
php结合imgareaselect实现图片裁剪
2015/07/05 Javascript
JavaScript保存并运算页面中数字类型变量的写法
2015/07/06 Javascript
JS拖拽插件实现步骤
2015/08/03 Javascript
js中获取jsp表单中radio类型的值简单实例
2016/08/15 Javascript
js推箱子小游戏步骤代码解析
2018/01/10 Javascript
浅谈vuex中store的命名空间
2019/11/08 Javascript
JS原型对象操作实例分析
2020/06/06 Javascript
ssm+vue前后端分离框架整合实现(附源码)
2020/07/08 Javascript
JS+CSS实现炫酷光感效果
2020/09/05 Javascript
[01:18:31]DOTA2-DPC中国联赛定级赛 LBZS vs Magma BO3第一场 1月10日
2021/03/11 DOTA
Python中SOAP项目的介绍及其在web开发中的应用
2015/04/14 Python
在Windows服务器下用Apache和mod_wsgi配置Python应用的教程
2015/05/06 Python
Python的Django框架中从url中捕捉文本的方法
2015/07/20 Python
PYTHON 中使用 GLOBAL引发的一系列问题
2016/10/12 Python
详解python 模拟豆瓣登录(豆瓣6.0)
2019/04/18 Python
python交互模式下输入换行/输入多行命令的方法
2019/07/02 Python
Python中base64与xml取值结合问题
2019/12/22 Python
拿来就用!Python批量合并PDF的示例代码
2020/08/10 Python
瑞典最大的儿童用品网上商店:pinkorblue.se
2021/03/09 全球购物
对标管理实施方案
2014/03/12 职场文书
目标责任书范本
2014/04/16 职场文书
2014年局领导班子自身建设情况汇报
2014/11/21 职场文书
业务员岗位职责范本
2015/04/03 职场文书
社区文明倡议书
2015/04/28 职场文书
人民的好儿女观后感
2015/06/18 职场文书
2015年教导处教学工作总结
2015/07/22 职场文书
治庸问责工作总结
2015/08/11 职场文书
股权投资协议书
2016/03/23 职场文书