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 相关文章推荐
第十节 抽象方法和抽象类 [10]
Oct 09 PHP
php AJAX实例根据邮编自动完成地址信息
Nov 23 PHP
PHP 伪静态技术原理以及突破原理实现介绍
Jul 12 PHP
ThinkPHP惯例配置文件详解
Jul 14 PHP
php实现高效获取图片尺寸的方法
Dec 12 PHP
PHP中把对象转换为关联数组代码分享
Apr 09 PHP
php发送短信验证码完成注册功能
Nov 24 PHP
PHP上传Excel文件导入数据到MySQL数据库示例
Oct 25 PHP
php微信公众号js-sdk开发应用
Nov 28 PHP
PHP 访问数据库配置通用方法(json)
May 20 PHP
PHP常量define和const的区别详解
May 18 PHP
php提供实现反射的方法和实例代码
Sep 17 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数组中的重复值的实现代码
2011/07/17 PHP
Laravel 集成 Geetest验证码的方法
2018/05/14 PHP
PHP实现打包zip并下载功能
2018/06/12 PHP
php实现通过stomp协议连接ActiveMQ操作示例
2020/02/23 PHP
php设计模式之适配器模式实例分析【星际争霸游戏案例】
2020/04/07 PHP
extjs 学习笔记(一) 一些基础知识
2009/10/13 Javascript
javascript中使用css需要注意的地方小结
2010/09/01 Javascript
JS 添加网页桌面快捷方式的代码详细整理
2012/12/27 Javascript
JS替换字符串中空格方法
2015/04/17 Javascript
AngularJS学习笔记之ng-options指令
2015/06/16 Javascript
基于MVC5和Bootstrap的jQuery TreeView树形控件(一)之数据支持json字符串、list集合
2016/08/11 Javascript
bootstrap datetimepicker 日期插件在火狐下出现一条报错信息的原因分析及解决办法
2017/03/08 Javascript
vue.js开发环境安装教程
2017/03/17 Javascript
从零开始学习Node.js系列教程之SQLite3和MongoDB用法分析
2017/04/13 Javascript
vue watch自动检测数据变化实时渲染的方法
2018/01/16 Javascript
Vue中使用webpack别名的方法实例详解
2018/06/19 Javascript
JQuery Ajax执行跨域请求数据的解决方案
2018/12/10 jQuery
浅谈vue中组件绑定事件时是否加.native
2019/11/09 Javascript
Openlayers显示地理位置坐标的方法
2020/09/28 Javascript
python3.6 +tkinter GUI编程 实现界面化的文本处理工具(推荐)
2017/12/20 Python
Python决策树和随机森林算法实例详解
2018/01/30 Python
Scrapy基于selenium结合爬取淘宝的实例讲解
2018/06/13 Python
python中元组的用法整理
2020/06/15 Python
python使用列表的最佳方案
2020/08/12 Python
接口自动化多层嵌套json数据处理代码实例
2020/11/20 Python
Ellos丹麦:时尚和服装在线
2016/09/19 全球购物
考试不及格检讨书
2014/01/09 职场文书
士力架广告词
2014/03/20 职场文书
天网工程实施方案
2014/03/26 职场文书
品牌转让协议书
2014/08/20 职场文书
中级会计大学生职业生涯规划书
2014/09/16 职场文书
销售员未完成销售业绩的检讨书
2014/10/12 职场文书
六查六看心得体会
2014/10/14 职场文书
运动会致辞稿
2015/07/29 职场文书
结婚幸福感言
2015/08/01 职场文书
Python利用Turtle绘制哆啦A梦和小猪佩奇
2022/04/04 Python