1. php strcmp()和strcasecmp()的区别实例
这篇文章主要介绍了PHP中strcmp()和strcasecmp()函数字符串比较用法,结合实例形式较为详细的分析了strcmp()和strcasecmp()函数的功能,使用方法与区别
本文实例讲述了PHP中strcmp()和strcasecmp()函数字符串比较用法。分享给大家供大家参考,具体如下:
一、PHP中strcmp()函数用于比较两个字符串(区分大小写),其定义如下:
strcmp(string1,string2)
参数说明:
string1
必需。规定要比较的第一个字符串。
string2
必需。规定要比较的第二个字符串。
PS:strcmp()函数与
strncmp()
函数类似,不同的是,strncmp()可以指定每个字符串用于比较的字符数。
二、PHP中strcasecmp()函数比较两个字符串(不区分大小写),其定义如下:
strcasecmp(string1,string2)
参数说明:
string1
必需。规定要比较的第一个字符串。
string2
必需。规定要比较的第二个字符串。
PS:strcasecmp()函数与
strncasecmp()
函数类似,不同的是,strncasecmp()可以指定每个字符串用于比较的字符数。
示例代码:
<?php
$str1="码农教程";
$str2="码农教程";
$str3="www.jmanongjc.com";
$str4="www.jmanongjc.COM";
echo
strcmp($str1,$str2);//两个字符串相等
echo
"<br/>";
echo
strcmp($str3,$str4);//注意该函数区分大小写
echo
"<br/>";
echo
strcasecmp($str3,$str4);//该函数不区分大小写
?>
结果:
";
echo
strcmp($str3,$str4);//注意该函数区分大小写
echo
"
";
echo
strcasecmp($str3,$str4);//该函数不区分大小写
?>
补充:关于返回值问题
针对参数string1与string2的比较:
如果两个字符串相等,则返回值为
0
如果
string1
小于
string2,则返回值小于0
如果
string1
大于
string2,则返回值大于0
感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!
2. php5 mysql5 登录程序 $num_rows 返回为什么是0行 明明数据库中有数据的
楼主,PHP5默认全局变量是关闭的,所以你要引用上个页面传来的变量值,只能用$_POST、$_GET等数组接收,所以你这一行
if ($username && $password){
就开始出现漏洞了,$username 和 $password 的值是不能得到的,它们一定为空,所以if下面的语句不能执行,$num_rows = mysqli_num_rows($result)之后,$num_rows 永远都是0。改为if($_POST['username'] && $_POST['password'])就可以了。
你这句$result = mysqli_query($link,$query) or die("Query failed : " );
应该这么写:$result = mysqli_query($query,$link) or die("Query failed : " ); 参数应该先$query后$link
还有,你的程序逻辑还不完整,有了if,怎么没有else ?
3. php strcmp比较二个相等字符串时,返回不是0,不相等。
split已经比较老了···用explode试试
我刚测试
$string = "ipvar HOME_NET 192.168.12.0/16\nipvar HOME_NET 192.168.12.0/16";
$content = explode("\n", $string);
echo strcmp($content[0], $content[1]); // 0
也有可能是你的文本编码和代码的编码不一致造成···你的文本最好用你的ide重新保存一次··之前我弄一个还原sql的功能,就是因为用记事本保存了一个utf8格式的文本,然后我用我的程序读sql语句··写入数据库···提示错误··找了老半天···是记事本保存的utf8·和我ide保存的utf8不同造成···我用ide保存之后再去读就没有问题···
4. PHP中strcmp()和strcasecmp()函数字符串比较用法分析
本文实例讲述了PHP中strcmp()和strcasecmp()函数字符串比较用法。分享给大家供大家参考,具体如下:
一、PHP中strcmp()函数用于比较两个字符串(区分大小写),其定义如下:
strcmp(string1,string2)
参数说明:
string1
必需。规定要比较的第一个字符串。
string2
必需。规定要比较的第二个字符串。
PS:strcmp()函数与
strncmp()
函数类似,不同的是,strncmp()可以指定每个字符串用于比较的字符数。
二、PHP中strcasecmp()函数比较两个字符串(不区分大小写),其定义如下:
strcasecmp(string1,string2)
参数说明:
string1 必需。规定要比较的第一个字符串。
string2 必需。规定要比较的第二个字符串。
PS:strcasecmp()函数与
strncasecmp()
函数类似,不同的是,strncasecmp()可以指定每个字符串用于比较的字符数。
示例代码:
<?php
$str1="脚本之家";
$str2="脚本之家";
$str3="www.jb51.net";
$str4="www.JB51.NET";
echo
strcmp($str1,$str2);//两个字符串相等
echo
"<br/>";
echo
strcmp($str3,$str4);//注意该函数区分大小写
echo
"<br/>";
echo
strcasecmp($str3,$str4);//该函数不区分大小写
?>
运行结果如下:
0
1
0
补充:关于返回值问题
针对参数string1与string2的比较:
如果两个字符串相等,则返回值为
0
如果
string1
小于
string2,则返回值小于0
如果
string1
大于
string2,则返回值大于0
希望本文所述对大家PHP程序设计有所帮助。
5. strcmp函数这么写有什么漏洞请指正
函数有很多问题:while(!(*++s1 - *++s2 ) && *s1 && *s2);要改为while(*s1 && *s2 && *s1++==*s2++);*s1和*s2一定要写在前面,否则第一个字符比较不出来。减法运算不好理解,所以改为*s1++==*s2++);
后面的语句if(*s1 == '\0' || *s2 == '\0' ) s1 --,s2 --;也要删除。
所以,最后形式为:
int strcmp(const char *s1,const char *s2)
{
while(*s1 && *s2 && *s1++==*s2++);
if(*s1>*s2)
return 1;
else if(*s1<*s2)
return -1;
else
return 0;
}
6. PHP比较字符串 strcmp()函数问题
首先看字节数是不对的。我测试了下,这个比较是从开始比,只要遇到不想等的就会出结果了。也就是说,如果str1的某个字符比str2小,则str1<str2,而不会按整个字符串来比较。单个字符按ASCii码转换后比较,规则是小写字母大于大写字母,字母往后越大。如a>A,a<b<c。
7. PHP 两字符串比较,值相同 对比却不相等
在PHP中,可以用==(双等号)或者 ===(三等号)来比较字符串。两者的区别是双等号不比较类型,三等号会比较类型,它不转换类型;用双等号进行比较时,如果等号左右两边有数字类型的值,刚会把另一个值转化为数字,然后进行比较。这样的话,如果是纯字符串或者NULL时,会转化为0进行比较。同样,大小于号也和等号一样,比较时可能出现不正确的结果。
所以,比较字符串可以用PHP的自带函数strcmp和strcasecmp。其中strcasecmp是strcmp的变种,它会先把字符串转化为小写再进行比较。 如下代码:
var_mp(0 == 'Test');
var_mp(0 == '');
var_mp(5 > 'T');
var_mp(strcmp(5, 'T'));
运行结果:
bool(true)
bool(true)
bool(true)
int(-1)
8. php中strcmp函数是如何进行比较的
php中strcmp简介:
strcmp() 函数比较两个字符串。
注释:strcmp() 函数是二进制安全的,且对大小写敏感。
比较实例:
<!DOCTYPE html> <html> <body>
<?php echo strcmp("Hello world!","Hello world!")."<br>"; // 两字符串相等 echo strcmp("Hello world!","Hello")."<br>"; // string1 大于 string2
echo strcmp("Hello world!","Hello world! Hello!")."<br>"; // string1 小于 string2 ?>
</body>
</html>
运行结果:
0
7
-7