文档首页> 常见问题> php字符串函数(二):比较运算

php字符串函数(二):比较运算

发布时间:2023-04-14 03:30       

* 1.strcmp($str1, $str2):二进制安全字符串比较

* 2.strncmp($str1, $str2, $length):比较开头指定长度的是否相待

* 3.strcasecmp($str1, $str2):二进制安全字符串比较,不区分大小写

* 4.strncasecmp($str1, $str2):二进制安全字符串比较,不区分大小写

* 5.strspn($str,$mark,$start,$length):获取匹配遮罩的起始子字符串的长度

* 6.strcspn($str,$mark,$start,$length):获取不匹配遮罩的起始子字符串的长度

//1.strcmp($str1, $str2):字符串比较,相等返回0,大于返回>0,否则返回<0

echo strcmp($str1, $str2) == 0 ? '相等' : '不相等', '<br>';

//2.strncmp($str, $str2, $n):比较开头指定长度是否相等

echo strncmp($str1, $str2, 3) == 0 ? '相等' : '不相等', '<br>';

//3.strcasecmp($str1, $str2):不区分大小写的字符串比较,相等返回0,大于返回>0,否则返回<0

echo strcasecmp($str1, $str2) == 0 ? '相等' : '不相等', '<br>';

//4.strncasecmp($str1, $str2):不区分大小写比较开头指定长度是否相等

echo strncasecmp($str1, $str2,3) == 0 ? '相等' : '不相等', '<br>';

//5.strspn($str, $mark, $start, $length):

//计算字符串中全部字符都存在于指定字符集合中的第一段子串的长度

//$str1:要比较的字符串, $mark:类似于集合,返回匹配的数量

echo strspn('15705519989', '1234567890'),'<br>';  //返回11

//可以指定开始比较的位置与长度

echo strspn('15705519989', '1234567890', 4, 4),'<br>';//返回4

//只比较$str中的第一个子串,后面的全部忽略掉,返回11

echo strspn('15705519989 18955123344 111abc', '1234567890'),'<br>';

//返回3,因为第一个字串中只有前三个是属于数字集合中的数据

echo strspn('157php 18955123344 111abc', '1234567890'),'<br>';

//例如手机号必须是纯数字字符串,要求用户必须输入的是纯数字的字符串

$phone = '13899886767';

// $phone = '1389988php6767';

$mark = '0123456789';

//分析,如果正确匹配,那么strspn()必返回11,因为手机号是11,与strlen($phone)正好相等

echo strlen($phone)==strspn($phone, $mark) ? '全数字' : '必须全为数字';

//等价于: strspn(substr($subject, $start, $length), $mask)

//6.strcspn()与strspn()功能正好相反,大家可自行举例验证