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 ?>
posted @ 2017-10-13 00:03  Sch01aR#  阅读(267)  评论(0编辑  收藏  举报