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 相关文章推荐
2.PHP入门
Oct 09 PHP
谈谈PHP的输入输出流
Feb 14 PHP
PHP中simplexml_load_string函数使用说明
Jan 01 PHP
Php output buffering缓存及程序缓存深入解析
Jul 15 PHP
Laravel中扩展Memcached缓存驱动实现使用阿里云OCS缓存
Feb 10 PHP
Thinkphp模板标签if和eq的区别和比较实例分析
Jul 01 PHP
PHPExcel笔记, mpdf导出
May 03 PHP
PHP互换两个变量值的方法(不用第三变量)
Nov 14 PHP
WHOOPS PHP调试库的使用
Sep 29 PHP
php中的explode()函数实例介绍
Jan 18 PHP
php给数组赋值的实例方法
Sep 26 PHP
goto语法在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
用session做客户验证时的注意事项
2006/10/09 PHP
ajax+php打造进度条 readyState各状态
2010/03/20 PHP
PHP系统命令函数使用分析
2013/07/05 PHP
php多种形式发送邮件(mail qmail邮件系统 phpmailer类)
2014/01/22 PHP
ThinkPHP中U方法的使用浅析
2014/06/13 PHP
DOM基础及php读取xml内容操作的方法
2015/01/23 PHP
PHP7.1方括号数组符号多值复制及指定键值赋值用法分析
2016/09/26 PHP
一个非常实用的php文件上传类
2017/07/04 PHP
PHP 多进程与信号中断实现多任务常驻内存管理实例方法
2019/10/04 PHP
php实现根据身份证获取精准年龄
2020/02/26 PHP
Javascript处理DOM元素事件实现代码
2012/05/23 Javascript
jquery prop的使用介绍及与attr的区别
2013/12/19 Javascript
jQuery获取和设置表单元素的方法
2014/02/14 Javascript
详解JavaScript中undefined与null的区别
2014/03/29 Javascript
JavaScript italics方法入门实例(把字符串显示为斜体)
2014/10/17 Javascript
JavaScript获取元素尺寸和大小操作总结
2015/02/27 Javascript
jQuery设置和移除文本框默认值的方法
2015/03/09 Javascript
jquery实现焦点轮播效果
2017/02/23 Javascript
关于Stream和Buffer的相互转换详解
2017/07/26 Javascript
深入探究angular2 UI组件之primeNG用法
2017/07/26 Javascript
JavaScript实现QQ列表展开收缩扩展功能
2017/10/30 Javascript
JS实现秒杀倒计时特效
2020/01/02 Javascript
vant picker+popup 自定义三级联动案例
2020/11/04 Javascript
在vue中通过render函数给子组件设置ref操作
2020/11/17 Vue.js
如何在Python中编写并发程序
2016/02/27 Python
Python numpy 点数组去重的实例
2018/04/18 Python
在PyTorch中使用标签平滑正则化的问题
2020/04/03 Python
8种常用的Python工具
2020/08/05 Python
python操作链表的示例代码
2020/09/27 Python
Saucony澳大利亚官网:美国跑鞋品牌,运动鞋中的劳斯莱斯
2018/05/05 全球购物
诺思信科技(南京)有限公司.NET笔试题答案
2013/07/06 面试题
社区服务标语
2014/07/01 职场文书
离婚协议书怎么写
2014/09/12 职场文书
堂吉诃德读书笔记
2015/06/30 职场文书
幼儿园教师管理制度
2015/08/05 职场文书
Python中X[:,0]和X[:,1]的用法
2021/05/10 Python