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数组交集的优化代码分析
Mar 06 PHP
php引用计数器进行垃圾收集机制介绍
Sep 19 PHP
基于PHP选项与信息函数的使用详解
May 10 PHP
解析php如何将日志写进syslog
Jun 28 PHP
使用PHP curl模拟浏览器抓取网站信息
Oct 28 PHP
分享一个Laravel好用的Cache宏
Mar 02 PHP
php计算函数执行时间的方法
Mar 20 PHP
Windows下Apache + PHP SESSION丢失的解决过程全纪录
Apr 07 PHP
PHP的消息通信机制测试实例
Nov 10 PHP
php+redis实现注册、删除、编辑、分页、登录、关注等功能示例
Feb 15 PHP
thinkPHP5实现的查询数据库并返回json数据实例
Oct 23 PHP
tp5.1 框架数据库-数据集操作实例分析
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
安健A254立体声随身听的分析与打磨
2021/03/02 无线电
PHP学习之PHP运算符
2006/10/09 PHP
pw的一个放后门的方法分析
2007/10/08 PHP
分享五个PHP7性能优化提升技巧
2015/12/07 PHP
WordPress中用于更新伪静态规则的PHP代码实例讲解
2015/12/18 PHP
浅谈PHP中其他类型转化为Bool类型
2016/03/28 PHP
ThinkPHP删除栏目(实现批量删除栏目)
2017/06/21 PHP
php中通用的excel导出方法实例
2017/12/30 PHP
基于jquery实现的上传图片及图片大小验证、图片预览效果代码
2011/04/12 Javascript
JQuery 在线引用及测试引用是否成功
2014/06/24 Javascript
javascript根据时间生成m位随机数最大13位
2014/10/30 Javascript
BootStrap智能表单实战系列(六)表单编辑页面的数据绑定
2016/06/13 Javascript
js实现四舍五入完全保留两位小数的方法
2016/08/02 Javascript
jQuery图片切换动画特效
2016/11/02 Javascript
基于node.js之调试器详解
2017/08/22 Javascript
switchery按钮的使用方法
2017/12/18 Javascript
jQuery使用动画队列自定义动画操作示例
2018/06/16 jQuery
Vue.js 利用v-for中的index值实现隔行变色
2018/08/01 Javascript
详解Bootstrap 学习(一)入门
2019/04/12 Javascript
vue组件间的参数传递实例详解
2019/04/26 Javascript
elementUi vue el-radio 监听选中变化的实例代码
2019/06/28 Javascript
layui 动态设置checbox 选中状态的例子
2019/09/02 Javascript
[03:01]DOTA2英雄基础教程 露娜
2014/01/07 DOTA
[06:16]第十四期-国士无双绝地翻盘之撼地神牛
2014/06/24 DOTA
[01:07:53]RNG vs VG 2019国际邀请赛小组赛 BO2 第一场 8.15
2019/08/17 DOTA
Python使用Srapy框架爬虫模拟登陆并抓取知乎内容
2016/07/02 Python
Django如何实现网站注册用户邮箱验证功能
2019/08/14 Python
IE10 Error.stack 让脚本调试更加方便快捷
2013/04/22 HTML / CSS
解释一下Windows的消息机制
2014/01/30 面试题
Android笔试题总结
2014/11/29 面试题
外语系毕业生求职自荐信
2014/04/12 职场文书
产品销售计划书
2014/05/04 职场文书
中文专业求职信
2014/06/20 职场文书
入党转正申请书范文
2019/05/20 职场文书
Redis 常见使用场景
2021/08/30 Redis
SpringDataJPA在Entity中常用的注解介绍
2021/12/06 Java/Android