php字符串比较函数

php字符串比较函数

www.111cn.net 编辑:Crese 来源:转载

比较两个字符串是否相等,最常见的方法就是使用“===”来判断,至于它和“==”的区别,简单来说就是前者强调“identical”类型也要求一样;后者要求“equal”,值相同就可以了,参考【1】。或者使用strcmp来判断,但是这个能够告诉你两个字符串是否相等,但是无法告诉你在那里不同。我的思路是单字符串分割为一个个字母(character),这样比较就能精确知道在那个位置不同了。分隔字符串,使用“str_split”就可以了,语法参考【2】。然后输出结果数组,好处是连空格也会作为数组的元素。我之前的例子就是因为前一个字符串包含2个空格,而后一个只有一个。但是输出的时候看到的显示都是一样的。 也可以按照其他分隔符进行分割,如“explode”或者“preg_split”,

  一般能用 !=, == 比较两个对象是否相等,只所以说是两个对象,是因为他们不一定全部为字符串,也能为整型等等。比如

 代码如下 复制代码

$a = "joe"; 
$b = "jerry"; 
if ($a != $b) 

    echo "不相等"; 

else 

    echo "相等"; 
}

  如果用 !==,===(能看到多了一个等号)比较的话,两个对象的类型要严格相等才能返回true;否则用==,!=则会将字符串自动转换成相应的类型,以便进行比较.

 代码如下 复制代码
22 == "22"; // 返回 true 
22 === "22"; // 返回false

  正因为这样,所以我们的程式时常会发生一些想不到的“意外”:

0 == "我爱你"; // 返回true 
1 == "1 我爱你";// 返回true

  php教程里更有这样一组用于字符串比较的函数:strcmp,strcasecmp,strncasecmp(), strncmp(),他们都是如果前者比后者大,则返回大于0的整数;如果前者比后者小,则返回小于0的整数;如果两者相等,则返回0.他们比较的原理和其他语言的规则都是相同的。

strcmp是用于区分大小写(即大小写敏感)的字符串比较:
echo strcmp("abcdd", "abcde"); // 返回 1 (>0), 比较的是 "b"和"b"

strcasecmp用于不区分大小写的字符串比较:
echo strcasecmp("abcdd", "abcde"); // 返回 -1 (<0), 比较的是"d"和"e"

strncmp用于比较字符串的一部分,从字符串的开头开始比较,第三个参数,为要比较的长度:
echo strncmp("abcdd", "abcde", 3); // 返回 1 (>0), 比较了 abc 和 abc

strncasecmp用于不区分大小写的比较字符串的一部分,从字符串的开头开始比较,第三个参数,为要比较的长度:
echo strncasecmp("abcdd", "abcde", 3); // 返回 0, 比较了 abc 和 abc, 由于不区分大小写,所以两者是相同的。

  更有一种情况是单单比较字符串大小,达不到我们预定的需求,比如照常理 10.gif 会比 5.gif 大,但如果应用上面几个函数,就会返回 -1,即表示 10.gif比5.gif,针对这种情况,php提供了两个自然对比的函数strnatcmp,strnatcasecmp:

echo strnatcmp("10.gif", "5.gif"); // 返回 1 (>0) 
echo strnatcasecmp("10.gif", "5.gif"); // 返回 1 (>0)

时间: 2024-10-10 00:18:05

php字符串比较函数的相关文章

一起talk C栗子吧(第六十六回:C语言实例--DIY字符串比较函数)

各位看官们,大家好,上一回中咱们说的是DIY字符串连接函数的例子,这一回咱们说的例子是:DIY字符串比较函数.闲话休提,言归正转.让我们一起talk C栗子吧! 我们在前面的章回中介绍过字符串比较函数,时间不长,但是有些看官已经忘记了,为了加深看官们对字符串比较函数的印象,我们准备DIY字符串比较函数.Just do it by yourself! 我们在前面的章回中一共介绍了两个字符串比较函数:strcmp,strncmp.接下来我们分别介绍如何DIY这两个字符串比较函数. DIY strcm

[笔记]C语言字符串比较函数,复制函数和拼接函数

1.字符串比较函数有两个,分别是memcmp()和strcmp(), memcmp(const char *s,const char *d,int n) 表示字符串s和d比较前n个字符,若字符长度小于n则会越界比较,用这个函数的时候要特别小心s和d在长度及要比较的字符个数. strcmp(const char *s,const char *d) 比上个函数少一个参数n,因为这个函数是以'\0'为比较结束标记的,如果某个字符串到达'\0'的位置,则结束比较,另外注意,两个字串s和d长度必须相等才可

字符串比较函数汇总

字符串比较函数汇总 char *strchr(const char *string, int c); 查找字符c在字符串string中首次出现的位置, NULL结束符也包含在查找中. 返回一个指针, 指向字符c在字符串string中首次出现的位置, 如果没有找到, 则返回NULL. char *strrchr(const char *string, int c); 查找字符c在字符串string中最后一次出现的位置, 也就是对string进行反序搜索, 包含NULL结束符. 返回一个指针, 指向

(C语言)字符串比较函数,指针数组与数组指针

问题描述: 写一个函数,用于比较两个字符串的比较(string_compare). 程序分析: (1)主要思想:传入两个字符串后,比较这两个字符串中的每个元素,如果第一次比较就不相等,就不要让它进入到下面的比较中.这样一来,将它返回一个相减的值(即:两数组中开始不相等的那两个元素相减,返回值(int类型),是ASCII码值相减).进入比较的过程中时,相等就返回0:其他情况都返回那个相减的值. (2)主要方式:定义指针数组,并对其初始化.然后照上面的思想,进行代码的实现. 代码如下: /***指针

VC中支持中文的字符串比较函数

WCHAR * mbcsToUnicode(const char *zStr) { int nByte; WCHAR *zMbcsStr; int codepage = AreFileApisANSI() ? CP_ACP : CP_OEMCP; nByte = MultiByteToWideChar(codepage, 0, zStr, -1, NULL,0)*sizeof(WCHAR); zMbcsStr = (WCHAR*)malloc( nByte*sizeof(zMbcsStr[0])

用字符串处理函数中的比较函数strcmp做的一个密码登录验证

正确返回0 1大返回正数 2大返回负数  1,2表示输入字符串1和字符串2 根据ASCII码大小来判断 代码: 1 #include<stdio.h> 2 #include<string.h> 3 int main() 4 { 5 //字符串比较函数 根据ASCII码值的大小来比较 strcmp 6 //相等 返回0 1大返回正数 2大返回负数 1和2为要比较的两个字符串 7 char user[20] = { "mrsoft" }; //设置用户名字符串 8

c语言——字符串变量、函数

//非A即B int IN(char *str) { char *str1="A"; printf("strcmp(str, str1) : %d\n", strcmp(str, str1)); if(strcmp(str,str1) ==0) { return 1; } else { return 0; } } 包含头文件 #inlcude<string.h> 字符串函数 字符串长度函数strlen strlen(arrayName);//返回 int

PHP内置的字符串处理函数

字符串的特点    1.其他类型的数据用在字符串类型处理函数中,会自动将其转化成字符串后,在处理 <?php echo substr("abcdefghijklmn",2,4),"<br>"; //cdef //使用数字会自动转化为字符串 echo substr(123456,2,4); //3456 ?> 2.可以将字符串视为数组,当做字符集合来看待 <?php $str="abcdefg"; //下面这两种方法都

常用字符串函数集合

随着计算机科学的发展和计算机应用的推广,对字符串的处理越来越成为计算机的一项重要能力.当然,在acm中也时常要用到.现在,我就来总结下在acm中必须掌握的字符串函数: 出现的顺序是按在acm中的使用频率来排的. 头文件:#include<string.h> / #include<cstring> ,分别为 C 和 C++中的头文件. 1.extern unsigned int strlen(char *s); ------>> 说明: 求字符串的长度,即字符串中字符的个