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 相关文章推荐
15个小时----从修改程序到自己些程序
Oct 09 PHP
php中的时间处理
Oct 09 PHP
PHPLog php 程序调试追踪工具
Sep 09 PHP
用PHP获取Google AJAX Search API 数据的代码
Mar 12 PHP
使用配置类定义Codeigniter全局变量
Jun 12 PHP
PHP中的类型提示(type hinting)功能介绍
Jul 01 PHP
PHP共享内存用法实例分析
Feb 12 PHP
深入浅析Yii admin的权限控制
Aug 31 PHP
php实现图片按比例截取的方法
Feb 06 PHP
PHP实现的Redis多库选择功能单例类
Jul 27 PHP
Mac下快速搭建PHP开发环境步骤详解
May 05 PHP
不常用但很实用的PHP预定义变量分析
Jun 25 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
Laravel框架实现redis集群的方法分析
2017/09/14 PHP
Javascript注入技巧
2007/06/22 Javascript
7款吸引人眼球的jQuery/CSS3特效实例分享
2013/04/25 Javascript
jquery遍历数组与筛选数组的方法
2013/11/05 Javascript
js获取判断上传文件后缀名的示例代码
2014/02/19 Javascript
easyui datagrid 键盘上下控制选中行示例
2014/03/31 Javascript
iframe中子父类窗口调用JS的方法及注意事项
2015/08/25 Javascript
使用jquery获取url及url参数的简单实例
2016/06/14 Javascript
jQuery实现div横向拖拽排序的简单实例
2016/07/13 Javascript
AngularJS中的包含详细介绍及实现示例
2016/07/28 Javascript
jQuery.Form实现Ajax上传文件同时设置headers的方法
2017/06/26 jQuery
Angular4自制一个市县二级联动组件示例
2017/11/21 Javascript
JS计算距当前时间的时间差实例
2017/12/29 Javascript
JS动画定时器知识总结
2018/03/23 Javascript
jQuery实现每隔一段时间自动更换样式的方法分析
2018/05/03 jQuery
微信小程序自定义组件传值 页面和组件相互传数据操作示例
2019/05/05 Javascript
JS操作Fckeditor的一些常用方法(获取、插入等)
2020/02/19 Javascript
python实现的udp协议Server和Client代码实例
2014/06/04 Python
python扫描proxy并获取可用代理ip的实例
2017/08/07 Python
django表单实现下拉框的示例讲解
2018/05/29 Python
详解js文件通过python访问数据库方法
2019/03/03 Python
Python基于scipy实现信号滤波功能
2019/05/08 Python
Django如何实现网站注册用户邮箱验证功能
2019/08/14 Python
python输入中文的实例方法
2020/09/14 Python
python/golang 删除链表中的元素
2020/09/14 Python
查找适用于matplotlib的中文字体名称与实际文件名对应关系的方法
2021/01/05 Python
CSS3转换功能transform主要属性值分析及实现分享
2012/05/06 HTML / CSS
Mytheresa中国官网:德国时尚奢侈品商城
2017/08/04 全球购物
彪马土耳其官网:PUMA土耳其
2019/07/14 全球购物
Linux文件操作命令都有哪些
2015/02/27 面试题
党员承诺书内容
2014/03/26 职场文书
祖国在我心中演讲稿200字
2014/08/28 职场文书
CSS3新特性详解(五):多列columns column-count和flex布局
2021/04/30 HTML / CSS
pandas:get_dummies()与pd.factorize()的用法及区别说明
2021/05/21 Python
解析Redis Cluster原理
2021/06/21 Redis
使用Nginx+Tomcat实现负载均衡的全过程
2022/05/30 Servers