在程序的时候,经常要处理字符串,最基本就是字符串的查找,可能需要检查字符串是否包含特定的字符或子字符串,因为必须对该字符串或字符执行某些操作。一般使用下面的3个php内置函数来检查一个字符串是否包含特定字符。
PHPstrrpos()函数
PHPstrstr()函数
PHPpreg_match()函数
PHPstrrpos()函数
strrpos()函数查找字符串在另一字符串中最后一次出现的位置。根据strrpos()函数的特征,可以使用它来判断一个字符串中是否包含指定字符串。
首先来看一下strrpos()函数的语法和参数。
语法:
strrpos(string,find,start)
参数详细描述:
参数描述
string必需。规定被搜索的字符串。
find必需。规定要查找的字符。
start可选。规定在何处开始搜索。
注意:字符串位置从0开始,不是从1开始。
例子:
?ph
//从提交的表单中获取邮件信息并保存到变量$email中
$email=$_POST['email'];
//判断提交的邮箱地址里是否包含@符号
if(strpos($email,'@')!==false){
print'提交的邮箱地址包含@符号!';
}else{
print'提交的邮箱地址没有包含@符号!';
}
?
如果需要查找的字符对大小写不敏感,可以使用strripos()。
PHPstrstr()函数
strstr()函数搜索一个字符串在另一个字符串中的第一次出现。该函数返回字符串的其余部分(从匹配点)。如果未找到所搜索的字符串,则返回false。
语法
strstr(string,search,before_search)
参数描述:
参数描述
string必需。规定被搜索的字符串。
search
必需。规定所搜索的字符串。
如果此参数是数字,则搜索匹配此数字对应的ASCII值的字符。
before_search
可选。默认值为false的布尔值。
如果设置为true,它将返回search参数第一次出现之前的字符串部分。
例子:
if(false!==strstr($source_str,$substring)){
echo'包含!';
}else{
echo'未包含!';
}
PHPpreg_match()函数
最后一种方法是使用正则表达式结合PHPpreg_match函数检查一个字符串是否包含另一个字符。如果匹配上,那么函数将返回true,否则返回false。preg_match语法语法如下:
preg_match(string$pattern,string$subject[,array$matches[,int$flags=0[,int$offset=0]]])
以下是一个非常简单的匹配:
if(preg_match(/Fangwei/i,)){
echo匹配!;
}else{
echo未匹配!;
}
正则表达式最后的字符i表示匹配不区分大小写。