一,递归函数实战:删除指定目录
function delete_dir_file($dir){// 初始状态 $flag =false;// is_dir() 判断是否为目录if(is_dir($dir)){// opendir() 打开目录句柄,成功则返回目录句柄的 resource, 或者在失败时返回 falseif($handle = opendir($dir)){// readdir() 从目录句柄中读取条目(需要 opendir() 打开的目录句柄),成功则返回文件名 或者在失败时返回 falsewhile(($fil小白学搭建点我wcqh.cne= readdir($handle))!==false){// 排除 ‘.(表示有同级目录或文件) 和 ..(表示有父目录)if($file !==.&& $file !==..){/** * 如果当前目录下没有目录,都是文件,则删除所有文件,跳出 if ($handle = opendir($dir)) 语句后删除当前目录 * 如果当前目录下有子目录,则将当前目录作为参数调用自己 delete_dir_file($dir . DIRECTORY_SEPARATOR . $file) * 逐层深入,由内向外删除所有子目录和文件 */// 判断当前是否为目录,是的话调用自己 delete_dir_file (小白学搭建点我wcqh.cn$dir . DIRECTORY_SEPARATOR . $file)if(is_dir($dir . DIRECTORY_SEPARATOR . $file)){ delete_dir_file($dir . DIRECTORY_SEPARATOR . $file);}else{// 不是目录,是文件,用 unlink() 删除 unlink($dir . DIRECTORY_SEPARATOR . $file);}}}}// 关闭打开的目录句柄 closedir($handle);// 删除目录,成功将 $flag 设置为 trueif(rmdir($dir)){ $flag =true;}}return $flag;}$d小白学搭建点我wcqh.cnel_path= __DIR__ . DIRECTORY_SEPARATOR .tmvc;if(delete_dir_file($del_path)){ echo json_encode([msg=>缓存目录删除成功,code=>0],320);}else{ echo json_encode([msg=>缓存目录删除失败,code=>1],320);}二,字符串操作函数
1,implode()
将数组转换为字符串,用指定符号连接
$arr =[html,css,uniapp,vue,electron];echo implode(|, $arr);// html|css|uniapp|vue|electron2,ex小白学搭建点我wcqh.cnplode()
将字符串转为数组,用字符串中的某个字符分割成若干数组成员
echo $_SERVER[DOCUMENT_URI];// /phpedu/1.php$pathinfo = explode(“/”, $_SERVER[DOCUMENT_URI]);var_dump($pathinfo);// array(3) { [0]=> string(0) “” [1]=> string(6) “phpedu” [2]=> string(5) “1.php” }3,str_replace()
字符串替换,格式:
str_replace(
array|string $search,
array|string $r小白学搭建点我wcqh.cneplace,
string|array $subject,
int &$count = null): string|arraysearch: 查找的目标值,也就是 needle。一个数组可以指定多个目标。
replace: search 的替换值。一个数组可以被用来指定多重替换。
subject:执行替换的数组或者字符串。也就是 haystack。如果 subject 是一个数组,替换操作将遍历整个 subject,返回值也将是一个数组。
count:如果被指定,它的值将被设置为替换发生的次数。
// 敏感词列表$search =[交友,广告,转账,直播,带货,陪聊,异性];;// 需要发送的留言$chat小白学搭建点我wcqh.cnMSG=;// 将留言中的敏感词替换为 *** ,返回替换后的字符串// 第四个参数返回一个变量,值为替换的次数$RES = str_replace($search,“**”, $chatMSG, $count);echo $RES;// 本公司承接各类**代理,提供**和**教学,提供******服务…echo $count;// 6// 过滤留言信息if($count ==0){// 消息发送}else{// 警告功能 服务端主动向客户端发送消息}4,substr()
获取子字符串,格式:
substr(string $strin小白学搭建点我wcqh.cng, int $offset, ?int $length =null): string
string:原字符串offset:开始位置,正数从前面开始,负数从后面开始length:截取长度 // 生成随机验证码 随机颜色// rand() — 产生一个随机整数$str = md5(rand());$code = substr($str,0,4);echo “<h1>”;for($i =0; $i < strlen($code); $i++){// 十六进制颜色 $color =#. substr(md5(rand()),0,6); echo “<span style=color: {$color}>”; echo substr($小白学搭建点我wcqh.cncode, $i,1); echo “</span>”;}echo “</h1>”;5,mb_substr()
和 substr() 一样都是截取子字符串,不同的是 mb_substr() 可以针对多字节编码的汉字进行截取,从而防止乱码的出现。
echo substr(你放弃了吗,0,4);// 你�echo mb_substr(你放弃了吗,0,4);// 你放弃了三,url 操作函数
1,urlencode()
将字符串编码并将其用于 URL 的请求部分,同时它还便于将变量传递给下一页。
除了 – _ . 之外的所有非字母数字字符都将被替换成百分号(%)后跟两位十六进制数。
空格则编码为加号(+)。
echo u小白学搭建点我wcqh.cnrlencode(韩寒);// %E9%9F%A9%E5%AF%922,urldecode()
解码已编码的 URL 字符串。
echo urldecode(%E9%9F%A9%E5%AF%92);// 韩寒3,http_build_query()
生成 urlencode 编码之后的请求字符串(请求参数)
$params =[city=>合肥,// 新闻类型key=>12545we2234343,// 接口调用key,通过聚合平台申请开通];$paramsString = http_build_query($params);echo $paramsString;// city=%E5%90%88%E8%8小白学搭建点我wcqh.cn2%A5&key=12545we22343434,base64_encode()
使用 MIME base64 对数据进行编码,为了使二进制数据可以通过非纯 8-bit 的传输层传输,例如电子邮件的主体。Base64-encoded 数据要比原始数据多占用 33% 左右的空间。
// 示例:将二进制图片进行编码,将编码结果作为 <img> 的 src 属性// 获取图片文件(二进制文件)$file = file_get_contents(“https://gw.alicdn.com/imgextra/i2/3372144204/O1CN01aBboqA1gvTtBoaBVx_!!3372144204-小白学搭建点我wcqh.cn0-alimamacc.jpg_300x300q90.jpg_.webp”);// 使用 MIME base64 对数据进行编码$file_base64 = base64_encode($file);// <img> 的 src 属性data:image/jpeg;base64,<?= $file_base64 ?><img src=“data:image/jpeg;base64,<?= $file_base64 ?>” alt=“”>// 页面上图片链接为:// Data:image/jpeg;base64,UklGRuBGAABXRUJQVlA4INRGAABQ9ACdASosASwBPjkYi小白学搭建点我wcqh.cnkOiIaETqfX8IAOEpu…5,base64_decode()
对使用 MIME base64 编码的数据进行解码。
$data =www.wcqh.cn;$data64 = base64_encode($data);print $data64;// d3d3LnBocC5jbg==$decodeData = base64_decode($data64);print $decodeData;// www.wcqh.cn
暂无评论内容