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 和 MYSQL
Oct 09 PHP
phpMyAdmin链接MySql错误 个人解决方案
Dec 28 PHP
PHP 显示客户端IP与服务器IP的代码
Oct 12 PHP
php文件上传表单摘自drupal的代码
Feb 15 PHP
php中0,null,empty,空,false,字符串关系的详细介绍
Jun 20 PHP
php多种形式发送邮件(mail qmail邮件系统 phpmailer类)
Jan 22 PHP
浅谈php函数serialize()与unserialize()的使用方法
Aug 19 PHP
WampServer下安装多个版本的PHP、mysql、apache图文教程
Jan 07 PHP
php模仿qq空间或朋友圈发布动态、评论动态、回复评论、删除动态或评论的功能(中)
Jun 11 PHP
PHP魔术方法之__call与__callStatic使用方法
Jul 23 PHP
PHP设计模式之装饰器模式定义与用法简单示例
Aug 13 PHP
laravel使用Faker数据填充的实现方法
Apr 12 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 $_SERVER windows系统与linux系统下的区别说明
2014/02/14 PHP
PHP获取短链接跳转后的真实地址和响应头信息的方法
2014/07/25 PHP
Zend Framework教程之Zend_Layout布局助手详解
2016/03/04 PHP
PHP获取真实IP及IP模拟方法解析
2020/11/24 PHP
Asp.net下使用Jquery Ajax传送和接收DataTable的代码
2010/09/12 Javascript
Javascript中定义方法的另类写法(批量定义js对象的方法)
2011/02/25 Javascript
电子商务网站上的常用的js放大镜效果
2011/12/08 Javascript
利用JS延迟加载百度分享代码,提高网页速度
2013/07/01 Javascript
Json和Jsonp理论实例代码详解
2013/11/15 Javascript
JavaScript设计模式初探
2016/01/07 Javascript
jQuery实现倒计时重新发送短信验证码功能示例
2017/01/12 Javascript
图片加载完成再执行事件的实例
2017/11/16 Javascript
浅谈webpack打包生成的bundle.js文件过大的问题
2018/02/22 Javascript
利用Node.js如何实现文件循环覆写
2019/04/05 Javascript
Layui实现带查询条件的分页
2019/07/27 Javascript
VUEX-action可以修改state吗
2019/11/19 Javascript
Vue指令实现OutClick的示例
2020/11/16 Javascript
Vue实现简单计算器
2021/01/20 Vue.js
[45:25]完美世界DOTA2联赛循环赛 PXG vs IO 第一场 11.06
2020/11/09 DOTA
Python入门_浅谈数据结构的4种基本类型
2017/05/16 Python
Python设计模式之工厂模式简单示例
2018/01/09 Python
python随机数分布random测试
2018/08/27 Python
破解安装Pycharm的方法
2018/10/19 Python
python绘制直方图和密度图的实例
2019/07/08 Python
python实现翻译word表格小程序
2020/02/27 Python
利用Python如何画一颗心、小人发射爱心
2021/02/21 Python
英国时尚运动品牌的合集:The Sports Edit
2017/12/20 全球购物
关于Assembly命名空间的三个面试题
2015/07/23 面试题
《再别康桥》教学反思
2014/02/12 职场文书
小学六一儿童节活动方案
2014/08/27 职场文书
学校领导干部民主生活会整改方案
2014/09/29 职场文书
村主任“四风”问题个人对照检查材料思想汇报
2014/10/02 职场文书
退休教师追悼词
2015/06/23 职场文书
关于空气污染危害的感想
2015/08/11 职场文书
2019中小学生安全过暑期倡议书
2019/06/24 职场文书
利用python Pandas实现批量拆分Excel与合并Excel
2021/05/23 Python