PHP字符串的处理(一)-字符串初识和比较
在PHP中,字符和字节一样,共有256种不同字符的可能性,PHP对Unicode没有本地支持,一个GB2312编码的汉字占2字节,一个UTF-8编码的汉字占3字节字符串看作字符集和时,并不是真正的数组,获取字符串长度用strlen()函数,取字符串中的字符用{}
<?php $str = "test"; echo $str{0}; //输出一个字符t echo $str{1}; //输出一个字符e echo $str{2}; //输出一个字符s echo $str{3}; //输出一个字符t echo $str{1}.$str{2}; //输出两个字符es echo strlen($str); //输出字符串$str的长度 $str{strlen($str)-1} = 'q'; //把最后一个t替换成q $str{0} = 'admin'; //输出结果为aest ?>
substr()函数:
substr(string,start,length),把字符串视为数组
string:字符串(必选)
start:字符串开始的位置(必选)
length:返回字符串的长度,默认是到字符串的结尾(可选)
<?php echo substr("abcdef",2,3); //输出cde echo substr(123456,2,4); //输出3456 ?>
字符串比较:
strcasecmp(str1,str2) //忽略字符串中字母大小写进行比较
strcmp(str1,str2) //区分字符串中字母大小写进行比较
对传入的str1和str2的字符串进行比较,返回三个值
1.如果str1等于str2,返回0
2.如果str1大于str2,返回1
3.如果str1小于str2,返回-1
<?php $username = "admin"; if(strcasecmp($username,"admin") == 0){ echo "用户名正确<br>"; }else{ echo "用户名错误<br>"; } //输出:用户名正确 if(strcasecmp($username,"Admin") == 0){ echo "用户名正确<br>"; }else{ echo "用户名错误<br>"; } //输出:用户名正确 if(strcmp($username,"admin") == 0){ echo "用户名正确<br>"; }else{ echo "用户名错误<br>"; } //输出:用户名正确 if(strcmp($username,"Admin") == 0){ echo "用户名正确<br>"; }else{ echo "用户名错误<br>"; } //输出:用户名错误 ?>
strnatcmp() //按照自然排序法比较两个字符串,区分字符串大小写
strnatcasecmp() //按照自然排序法比较两个字符串,忽略字符串大小写
在自然算法中,数字2小于数字10.在计算机排序中,10小于2,因为 10 中的第一个数字小于 2
<?php echo strnatcasecmp("2test","10test"); //输出-1 ?>