php 字符串中是否包含指定字符串的多种方法
1. strstr
strstr() 函数搜索一个字符串在另一个字符串中的第一次出现。
该函数返回字符串的其余部分(从匹配点)。如果未找到所搜索的字符串,则返回 false。
代码如下:
1
2
3
4
5
6
7
|
<?php /*如手册上的举例*/ $email = 'user@example.com' ; $domain = strstr ( $email , '@' ); echo $domain ; // prints @example.com ?> |
2. stristr
stristr() 函数查找字符串在另一个字符串中第一次出现的位置。
如果成功,则返回字符串的其余部分(从匹配点)。如果没有找到该字符串,则返回 false。
它和strstr的使用方法完全一样.唯一的区别是stristr不区分大小写.
3. strpos
strpos函数返回boolean值.FALSE和TRUE不用多说.用 “===”进行判断.strpos在执行速度上都比以上两个函数快,另外strpos有一个参数指定判断的位置,但是默认为空.意思是判断整个字符串.缺点是对中文的支持不好.
实例1
1
2
3
4
5
|
if ( strpos ( 'www.jb51.net' , 'jb51' ) !== false){ echo '包含jb51' ; } else { echo '不包含jb51' ; } |
实例2
1
2
3
|
$str = 'abc' ; $needle = 'a' ; $pos = strpos ( $str , $needle ); // 返回第一次找到改字符串的位置,这里返回为1,若查不到则返回False |
4. explode
用explode进行判断PHP判断字符串的包含代码如下:
1
2
3
4
5
6
7
8
9
|
function checkstr( $str ){ $needle = 'a' ; //判断是否包含a这个字符 $tmparray = explode ( $needle , $str ); if ( count ( $tmparray )>1){ return true; } else { return false; } } |
5、substr例如我们需要判断最后一个字符是不是制定字符
1
2
3
4
5
6
|
<?php /* $str1 = "<p>这是个winrar专用的dll然后下哦啊不错的dll文件,QlogWin32.dll</p>" ; if ( substr ( $str1 ,-8)== ".dll</p>" ){ echo substr ( $str1 ,0,-4); } |
6、substr_count统计“子字符串”在“原始字符串中出现的次数”
substr_count()函数本是一个小字符串在一个大字符串中出现的次数:
$number = substr_count(big_string, small_string);
正好今天需要一个查找字符串的函数,要实现判断字符串big_string是否包含字符串small_string,返回true或fasle;
查了半天手册没有找到现成的函数,于是想到可以用substr_count函数来实现代码如下:
1
2
3
4
5
6
7
8
9
10
11
12
|
function check_str( $str , $substr ) { $nums =substr_count( $str , $substr ); if ( $nums >=1) { return true; } else { return false; } } |
分类:
php
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构