PHP字符串的处理,二-字符串的格式化

1.字符串大小写的转换

strtoupper():将字符串全部转换为大写字母

strtolower():将字符串全部转换为小写字母

ucfirst():将字符串中的首字母转换为大写,其余字符不变

ucwords():将字符串中全部以空格分隔的单词首字母转换为大写

<?php
    $str = "test of PHP";
    echo strtoupper($str);  //输出TEST OF PHP
    echo strtolower($str);  //输出test of php
    echo ucfirst($str);  //输出Test of PHP
    echo ucwords($str);  //输出Test Of PHP
?>

2.去除字符串

ltrim():从字符串左侧删除空白字符或其他预定义字符

rtrim():从字符串右侧删除空白字符或其他预定义字符

trim():从字符串两端删除空白字符或其他预定义字符

<?php
    $str = "  sch01ar   ";
    echo strlen($str);  //输出的字符串长度为12
    echo strlen(ltrim($str));  //去除左侧空格之后的字符串长度为10
    echo strlen(rtrim($str));  //去除右侧空格之后的字符串长度为9
    echo strlen(trim($str));   //去除两侧空格之后的字符串长度为7
?>

第二个参数可以自定义用来去除字符串,“...”指定范围,“0..9”表示去除0到9的数字,"a..z"表示去除a到z的小写字母,"A..Z"表示去除A到Z的大写字母

<?php
    $str = "123...Test of PHP...456...";
    echo ltrim($str,"0..9");  //去除了最左端的数字,输出...Test of PHP...456...
    echo rtrim($str,".");    //去除了最右端的...,123...Test of PHP...456
    echo trim($str,"0..9 A..Z .");  //去除了0-9的数字,A-Z的字母和".",输出est of
?>

如果不指定过滤的字符串,默认情况下会去掉下列字符:

" ":空格

"\0":NULL

"\n":换行

"\t":制表符

"\r":回车

3.填补字符串

str_pad(string,length,pad_string,pad_type)

string:字符串

length:处理后的长度

pad_string:填补的字符串,可选,默认为空格

pad_type:指定填补的方向,可选,有以下三个参数,默认为STR_PAD_RIGHT

STR_PAD_BOTH:在字符串两端进行填补

STR_PAD_RIGHT:在字符串右端进行填补

STR_PAD_LEFT:在字符串左端进行填补

<?php
    $str = "test";
    echo str_pad($str, 10);  //使用空格在右边填补test
    echo str_pad($str, 10,"-=", STR_PAD_LEFT);  //输出-=-=-=test
    echo str_pad($str, 10,"+", STR_PAD_BOTH);  //输出+++test+++
    echo str_pad($str, 10,"#")  //输出test######
?>

4.其他字符串格式化函数

strrev() //对字符串进行反转

<?php
    $str = "sch01ar";
    echo strrev($str);   //输出ra10hcs
?>

number_format() //通过千位分组来格式化数字

number_format(number,decimals,decimalpoint,secparator)

number: 必选项,为要被格式化的数字。如果没有设置其他参数,该数字会被格式化为不带小数点且以逗号作为分隔符的数字

decimals: 可选项,规定使用多少个小数。如果设置了该参数,则使用点号(.)作为小数点来格式化数字

decimalpoint: 可选项,规定用什么字符串作为小数点

secparator: 可选项,规定用作千位分隔符的字符串。如果设置了该参数,那么其他参数都是必需的

<?php
    $number = 123456789;
    echo number_format($number);  //用","作为分隔符,输出:123,456,789
    echo "<br>";
    echo number_format($number, 2); //用","作为分隔符,保留两位小数,输出:123,456,789.00
    echo "<br>";
    echo number_format($number, 2,"!","?");  //用"?"作为小数分隔符,用"!"作为千位分隔符。输出:123?456?789!00
?>

md5() //把字符串进行md5加密,默认返回一个32位的十六进制字符串

md5(string,raw)

string: 必选项,需要进行md5加密的字符串

raw: 可选项,为布尔值。默认为FALSE,返回一个32位的十六进制字符串。TRUE,为一个16位的二进制数

<?php
    $password = "sch01ar";
    echo md5($password);
    echo "<br>";
    
    if(md5($password) == "ce9372aba1d3f2a2fd81da95541ff370"){
        echo "密码正确";
    }else{
        echo "密码错误";
    }
?>