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中文件上传的安全问题
Oct 09 PHP
php whois查询API制作方法
Jun 23 PHP
PHP版国家代码、缩写查询函数代码
Aug 14 PHP
php中http_build_query 的一个问题
Mar 25 PHP
PHP图片库imagemagick安装方法
Sep 23 PHP
CI框架安全类Security.php源码分析
Nov 04 PHP
PHP模拟QQ登录的方法
Jul 29 PHP
一个简单的php路由类
May 29 PHP
Laravel搭建后台登录系统步骤详解
Jul 26 PHP
php数组遍历类与用法示例
May 24 PHP
php生成HTML文件的类方法
Oct 11 PHP
PHPstorm激活码2020年5月13日亲测有效
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 常用数组内部函数(Array Functions)介绍
2013/06/05 PHP
关于zend studio 出现乱码问题的总结
2013/06/23 PHP
PHP PDO fetch 模式各种参数的输出结果一览
2015/01/07 PHP
PHP使用trim函数去除字符串左右空格及特殊字符实例
2016/01/07 PHP
JavaScript排序算法之希尔排序的2个实例
2014/04/04 Javascript
js实现select组件的选择输入过滤代码
2014/10/14 Javascript
js实现div弹出层的方法
2014/11/20 Javascript
TypeScript具有的几个不同特质
2015/04/07 Javascript
浅谈js数组和splice的用法
2016/12/04 Javascript
javascript获取指定区间范围随机数的方法
2017/09/08 Javascript
微信小程序中时间戳和日期的相互转换问题
2018/07/09 Javascript
NodeJS实现同步的方法
2019/03/02 NodeJs
bootstrap table实现横向合并与纵向合并
2019/07/18 Javascript
微信小程序实现左侧滑栏过程解析
2019/08/26 Javascript
Layui 导航默认展开和菜单栏选中高亮设置的方法
2019/09/04 Javascript
Python存取XML的常见方法实例分析
2017/03/21 Python
Python同步遍历多个列表的示例
2019/02/19 Python
使用 Python 处理 JSON 格式的数据
2019/07/22 Python
通过实例了解python__slots__使用方法
2020/09/14 Python
python如何控制进程或者线程的个数
2020/10/16 Python
Django URL参数Template反向解析
2020/11/24 Python
Python字节单位转换(将字节转换为K M G T)
2021/03/02 Python
SQL Server 2000数据库的文件有哪些,分别进行描述
2013/03/30 面试题
一篇.NET面试题
2014/09/29 面试题
介绍一下linux的文件系统
2015/10/06 面试题
小学生期末自我鉴定
2014/01/19 职场文书
小学生家长评语集锦
2014/01/30 职场文书
小学班级口号
2014/06/09 职场文书
2014年大学班级工作总结
2014/11/14 职场文书
实习生个人总结范文
2015/02/28 职场文书
农民工工资保障承诺书
2015/05/04 职场文书
幼儿园辞职信
2015/05/13 职场文书
2015年度考核个人工作总结
2015/10/24 职场文书
2016年学校“6﹒26国际禁毒日”宣传活动总结
2016/04/05 职场文书
python 如何在list中找Topk的数值和索引
2021/05/20 Python
sass 常用备忘案例详解
2021/09/15 HTML / CSS