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危险函数(disable_functions)
Feb 23 PHP
基于PHP字符串的比较函数strcmp()与strcasecmp()的使用详解
May 15 PHP
PHP 简易输出CSV表格文件的方法详解
Jun 20 PHP
php常用ODBC函数集(详细)
Jun 24 PHP
CodeIgniter CLI模式简介
Jun 17 PHP
PHP把JPEG图片转换成Progressive JPEG的方法
Jun 30 PHP
PHP正则表达式 /i, /is, /s, /isU等介绍
Oct 23 PHP
set_exception_handler函数在ThinkPHP中的用法
Oct 31 PHP
php简单实现MVC
Feb 05 PHP
PHP易混淆知识整理笔记
Sep 24 PHP
PHP vsprintf()函数格式化字符串操作原理解析
Jul 14 PHP
如何用PHP实现分布算法之一致性哈希算法
May 26 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实现excel文件读写的方法分析
2018/04/25 PHP
超级简单的图片防盗(HTML),好用
2007/04/08 Javascript
键盘 keycode的值 javascript时触发事件时很有用的要素
2009/11/02 Javascript
js 多浏览器分别判断代码
2010/04/01 Javascript
IE8下关于querySelectorAll()的问题
2010/05/13 Javascript
使用js在页面中绘制表格核心代码
2013/09/16 Javascript
javascript实现限制上传文件大小
2015/02/06 Javascript
深入理解JavaScript系列(38):设计模式之职责链模式详解
2015/03/04 Javascript
详解Javacript和AngularJS中的Promises
2016/02/09 Javascript
微信小程序 JS动态修改样式的实现代码
2017/02/10 Javascript
Angular2中如何使用ngx-translate进行国际化
2017/05/21 Javascript
旺旺在线客服代码 旺旺客服代码生成器
2018/01/09 Javascript
react koa rematch 如何打造一套服务端渲染架子
2019/06/26 Javascript
js实现验证码功能
2020/07/24 Javascript
vue+elementUI动态增加表单项并添加验证的代码详解
2020/12/17 Vue.js
vue-quill-editor插入图片路径太长问题解决方法
2021/01/08 Vue.js
[51:30]OG vs LGD 2018国际邀请赛淘汰赛BO3 第二场 8.26
2018/08/30 DOTA
使用python分析git log日志示例
2014/02/27 Python
Python利用splinter实现浏览器自动化操作方法
2018/05/11 Python
python获取代码运行时间的实例代码
2018/06/11 Python
浅谈Python 敏感词过滤的实现
2019/08/15 Python
python 并发编程 阻塞IO模型原理解析
2019/08/20 Python
Python 3.8正式发布,来尝鲜这些新特性吧
2019/10/15 Python
Python数据可视化:箱线图多种库画法
2019/11/06 Python
比利时香水网上商店:NOTINO
2018/03/28 全球购物
Internet体系结构
2014/12/21 面试题
物理系毕业生自荐书
2014/06/13 职场文书
党员弘扬焦裕禄精神思想汇报
2014/09/10 职场文书
西安大雁塔导游词
2015/02/10 职场文书
2015年乡镇科普工作总结
2015/05/13 职场文书
2015年街道除四害工作总结
2015/05/15 职场文书
大学生社会实践感想
2015/08/11 职场文书
保险公司岗前培训工作总结
2015/10/24 职场文书
小学作文之描写天气
2019/08/15 职场文书
Python 实现Mac 屏幕截图详解
2021/10/05 Python
Python开发五子棋小游戏
2022/04/28 Python