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 相关文章推荐
Ajax+PHP边学边练 之五 图片处理
Dec 03 PHP
PHP 数组排序方法总结 推荐收藏
Jun 30 PHP
PHP+MYSQL会员系统的登陆即权限判断实现代码
Sep 23 PHP
在WordPress中实现发送http请求的相关函数解析
Dec 29 PHP
php简单的上传类分享
May 15 PHP
详解PHP实现定时任务的五种方法
Jul 25 PHP
PHP基于Redis消息队列实现发布微博的方法
May 03 PHP
php封装单文件上传到数据库(路径)
Oct 15 PHP
php把字符串指定字符分割成数组的方法
Mar 12 PHP
php实现微信支付之退款功能
May 30 PHP
java解析json方法总结
May 16 PHP
php实现对短信验证码发送次数的限制实例讲解
Mar 04 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中动态显示签名和ip原理
2007/03/28 PHP
php 友好URL的实现(吐血推荐)
2008/10/04 PHP
php adodb连接不同数据库
2009/03/19 PHP
php 模拟 asp.net webFrom 按钮提交事件的思路及代码
2013/12/02 PHP
php通过asort()给关联数组按照值排序的方法
2015/03/18 PHP
PHP目录与文件操作技巧总结(创建,删除,遍历,读写,修改等)
2016/09/11 PHP
laravel-admin表单提交隐藏一些数据,回调时获取数据的方法
2019/10/08 PHP
jquery动画4.升级版遮罩效果的图片走廊--带自动运行效果
2012/08/24 Javascript
javascript 循环调用示例介绍
2013/11/20 Javascript
Jquery 在页面加载后执行的几种方式
2014/03/14 Javascript
js解决select下拉选不中问题
2014/10/14 Javascript
node.js中使用socket.io制作命名空间
2014/12/15 Javascript
jquery实用技巧之输入框提示语句
2016/07/28 Javascript
基于jstree使用AJAX请求获取数据形成树
2017/08/29 Javascript
详解使用React全家桶搭建一个后台管理系统
2017/11/04 Javascript
vue-router history模式下的微信分享小结
2018/07/05 Javascript
vue中实现Monaco Editor自定义提示功能
2019/07/05 Javascript
vuex实现数据状态持久化
2019/11/11 Javascript
autojs 蚂蚁森林能量自动拾取即给指定好友浇水的实现方法
2020/05/03 Javascript
[54:56]DOTA2上海特级锦标赛主赛事日 - 5 总决赛Liquid VS Secret第三局
2016/03/06 DOTA
简单谈谈Python流程控制语句
2016/12/04 Python
python flask 多对多表查询功能
2017/06/25 Python
python中reader的next用法
2018/07/24 Python
Python脚本完成post接口测试的实例
2018/12/17 Python
教你一步步利用python实现贪吃蛇游戏
2019/06/27 Python
在Python中构建增广矩阵的实现方法
2019/07/01 Python
python3中eval函数用法使用简介
2019/08/02 Python
python实现证件照换底功能
2019/08/20 Python
python运用pygame库实现双人弹球小游戏
2019/11/25 Python
Python 装饰器原理、定义与用法详解
2019/12/07 Python
python中的django是做什么的
2020/07/31 Python
HTML5中的websocket实现直播功能
2018/05/21 HTML / CSS
Linux Interview Questions For software testers
2012/06/02 面试题
副校长个人对照检查材料思想汇报
2014/10/04 职场文书
《巨人的花园》教学反思
2016/02/19 职场文书
《云雀的心愿》教学反思
2016/02/23 职场文书