1.strtolower(str)字母转小写,不改变原字符串
$str1 = "WWW.PHP.CN";
$str_result = strtolower($str1);
echo $str_result;//www.php.cn
2.strtoupper(str)字母转大写,不改变原字符串,类似的还有ucfirst()首字母转大写,ucwords()每个单词首字母转大写
$str2 = "www.php.cn";
$str_result2 = strtoupper($str2);
$str_result3 = ucwords($str2);
echo $str_result2;//WWW.PHP.CN
echo "<br>";
echo $str_result3;//Www.php.cn
3.strlen()返回字符串长度,可以返回中文字符的长度,但是utf8一个中文字符占三个,gbk一个中文占两个
$str2 = "www.php.cn";
$str3 = "php中文网";
echo strlen($str2)."<br>";//10
echo strlen($str3)."<br>";//12
4.trim()删除字符串左右空白字符,ltrim()删除字符串左边空白字符,rtrim()删除字符串右边空白字符串,不会改变原字符串
$str3 = " hello php.cn";
echo strlen($str3)."<br>";//原来的长度:14
echo strlen(trim($str3))."<br>";//删除空白后的长度:12
5.substr(str,start,length)有以下几种情况:
1.从指定位置开始截取,返回字符串剩余部分
2.不会改变原字符串,返回新的字符串
3.截取不到,会返回false
4.开始位置如果是正数,从指定索引位置开始;开始位置是负数就在字符串从后往前数多少个为开始位置
5.截取长度或结束位置:可选,正数是截取的长度,负数就是从后往前数多少个为结束位置(不包含)
$str2 = "www.php.cn";
echo substr($str2,4,3)."<br>";//php
6.strrchr(str,”匹配的字符串”)从指定字符串最后一次出现的位置开始截取,返回字符串剩余部分
不会改变原字符串,返回一个新的字符串,截取不到会返回false
$str2 = "www.php.cn";
echo strrchr($str2,".")."<br>";//.cn
7.urlencode()URL字符串加密,urldecode()URL字符串解密,非字母数字字符串都将被替换成百分号后跟两位十六进制数,空格是加号
$str5 = "www.php.cn/?uname=张三&age=18";
$str_result5 = urlencode($str5);
echo $str_result5."<br>";//www.php.cn%2F%3Funame%3D%E5%BC%A0%E4%B8%89%26age%3D18
//再解一下吧:
echo urldecode("www.php.cn%2F%3Funame%3D%E5%BC%A0%E4%B8%89%26age%3D18")."<br>";//www.php.cn/?uname=张三&age=18
8.不可逆加密:sha1()字符串SHA1加密,加密结果是40字符的十六进制数
$password = "123456";
echo sha1($password)."<br>";//7c4a8d09ca3762af61e59520943dc26494f8941b
//加密了总得对比一下吧:
if(sha1($password)=="7c4a8d09ca3762af61e59520943dc26494f8941b"){
echo "验证成功"."<br>";
}else{
echo "验证失败!"."<br>";
};
//验证成功
9.在php5.5之前对于密码加密更多的是使用mad5或sha1+干扰字符串的方式,现在密码加密一般用password_hash(),也叫哈希算法,每次加密的值都不一样,具体参数如下:
password_hash(要加密的字符串,哈希算法常量,[选项关联数组]);
哈希算法常量包括:
1.PASSWORD_DEFAULT:使用bcrypt算法,该常量会随着PHP加入更新更高强度的算法而改变,使用此常量生成结果的长度将在未来有变化,因此,数据库里储存结果的列可超过60个字符(最好是255个字符)。
2.PASSWORD_ARGON2I:使用argon2散列算法创建散列
3.PASSWORD_BCRYPT:使用CRYPT_BLOWFISH算法创建散列,结果将会是 60 个字符的字符串,在失败时返回 FALSE。
$password = "123456";
$pwd= password_hash($password,PASSWORD_DEFAULT);
echo $pwd."<br>";//每次刷新后值是不一样的:$2y$10$khnoAy92gP8Vw7VcrOLpteTXLVQqA4wIYzmUdCM/9jcnolhpc22Te
10.比对函数:password_verify(未加密的密码,已加密的密码),返回的结果是布尔值
$verify_result = password_verify("123456",$pwd);
if(!$verify_result){
echo "密码错误"."<br>";
}else{
echo "密码正确"."<br>";
};//密码正确
11.strrev(str)把字符串反转
$str2 = "www.php.cn";
echo strrev($str2)."<br>";//nc.php.www
//12.str_shuffle(str)随机打乱字符串顺序
echo str_shuffle($str2)."<br>";//ph.cnww.wp
13.进制转换:
dec:十进制
bin:二进制
hex:16进制
oct:八进制
所以把十进制转二进制就是:decbin():
echo decbin(5)."<br>";//101
//其它方法:base_convert(要转换的数,原来的进制,要转换的进制):
echo base_convert(5,10,2)."<br>";//101
14.数字处理:
max()返回参数中最大的值,参数可以是数组
min()返回参数中最小的值,参数可以是数组
abs()返回一个数的绝对值,例如:
echo abs(-10)."<br>";//10
//round($val,小数点后几位)对小数进行四舍五入
echo round(3.1415926,2)."<br>";//3.14
//ceil() 向上取整
echo ceil(1.0001)."<br>";//2
//floor()向下取整
echo floor(1.99999)."<br>";//1
15.时间函数:
date_default_timezone_get()获取日期/时间使用的默认时区:
var_dump(date_default_timezone_get() )."<br>";//string(13) "Asia/Shanghai"
time()返回一个以秒为单位的时间戳:
echo time()."<br>";//1612248504
date()里面加上格式可以转化为更易读的时间:
年:Y四位数,y二位数
月:M英文,m数字(01-12),n(1-12)
日:D英文,d数字
星期:N
小时:H:24小时格式,h:12小时模式
i:带有前导0的分钟
s:带有前导0的秒
还可以加上时间戳参数,默认是当前时间:
echo date("Y/m/d/N h:i:s:a")."<br>";//2021/02/02/2 02:55:46:pm
strtotime()函数将日期和时间解析成时间戳,这个函数在做会员到期时间的时候可以用用
echo strtotime("now")."<br>";//当前时间戳:1612249127
echo strtotime("+1 month")."<br>";//一个月后的时间戳:1614668327
echo strtotime("+1 year")."<br>";//一年后的时间戳:1643785127
16:str_split(string,length)将字符串分为数组,第一个参数是要转换的字符串,第二个是长度:
print_r(str_split("abcdefg",2))."<br>";//Array ( [0] => ab [1] => cd [2] => ef [3] => g )
17:str_word_count(string,format,charlist):返回字符串中单词的使用情况:
$str6="ocean apart,day after day,and i slowly go insane";
print_r(str_word_count($str6),1) ."<br>";
18.copy(要复制的文件,目的地)复制文件
会返回一个布尔值,如果目标文件已存在,会被覆盖
可以弄成函数:
function fcopy($o_f,$n_f){
$nd = dirname($n_f);//获取目标目录
if(!file_exists($nd)){
echo "目录不存在";
return;
}
$f_space = disk_free_space($nd);//获取目标磁盘剩余空间
$f_size = filesize($o_f);//获取原文件大小
if($f_space<$f_size){
echo "磁盘剩余空间不够";
return;
}
$re = copy($o_f,$n_f);
if($re){
echo "文件拷贝成功";
}else{
echo "文件拷贝失败";
}
};
19:rmdir()删除目录,unlink()删除文件,也可以写成一个函数用:
function remove_dir($fname){
if (is_file($fname)){
$re = unlink($fname);
if ($re){
echo "文件删除成功了";
}else{
echo "文件删除失败";
}
}else{
echo "文件不存在";
}
};
20:strip_tags(string,allowable_tags) 从字符串中去除 HTML 和 PHP 标记,第一个参数是要处理的字符串,第二个参数是允许存在的标签
$text = '<p>Test paragraph.</p><a href="#fragment">Other text</a>';
echo strip_tags($text)."<br>";//Test paragraph.Other text
//带第二个参数:
echo strip_tags($text,"<a></a>")."<br>";//会保留a标签