PHP8.1.21版本已发布
vue8.1.21版本已发布
jquery8.1.21版本已发布

博客列表 > 实战:递归函数,删除指定目录;字符串操作函数;url函数的使用

实战:递归函数,删除指定目录;字符串操作函数;url函数的使用

Jet的博客
Jet的博客 原创
2023年03月20日 01:39:23 544浏览

一些重点函数内容:

目录函数

readdir: 从目录句柄中读取条目,成功则返回条目名,失败false;
opendir: 打开目录句柄,如果成功则返回目录句柄的resource,否则false;
closedir: 关闭目录句柄;


文件系统函数

unlink :删除文件,成功true,失败false;
is_dir: 判断文件名是否是一个目录,如果文件名存在且是目录,返回true,否则false;
rmdir:尝试删除 directory 所指定的目录;


一、实战:递归函数,删除目录

  1. <?php
  2. /**
  3. * 函数是完成特定功能的代码块
  4. */
  5. // 递归函数
  6. /**
  7. * delete_dir_file 删除指定目录
  8. * params: 指定需要删除的目录路径
  9. * return: 返回布尔值 成功true 失败false
  10. */
  11. if(!function_exists('delete_dir_file'))
  12. {
  13. function delete_dir_file($dir)
  14. {
  15. // 声明一个初始状态 默认情况下缓存未被删除
  16. $flag = false;
  17. // is_dir: 判断文件名是否是一个目录,如果文件名存在且是目录,返回true,否则false
  18. if(is_dir($dir))
  19. {
  20. // opendir: 打开目录句柄,如果成功则返回目录句柄的resource,否则false
  21. if($handle = opendir($dir))
  22. { // readdir: 从目录句柄中读取条目,成功则返回条目名,失败false
  23. /* $file = readdir($handle);
  24. echo $file; */
  25. // 遍历目录
  26. while (($file = readdir($handle)) !== false){
  27. // echo $file . '<br />';
  28. echo $file . '</br />';
  29. if($file != '.' && $file != '..')
  30. {
  31. if(is_dir($dir.DIRECTORY_SEPARATOR.$file))
  32. {
  33. delete_dir_file($dir.DIRECTORY_SEPARATOR.$file);
  34. } else {
  35. unlink($dir.DIRECTORY_SEPARATOR.$file);
  36. }
  37. }
  38. };
  39. }
  40. // closedir: 关闭目录句柄
  41. closedir($handle);
  42. if (rmdir($dir)) $flag = true;
  43. return $flag;
  44. }
  45. }
  46. }
  47. $del_path = __DIR__ . DIRECTORY_SEPARATOR . 'test';
  48. //echo $del_path;
  49. if(delete_dir_file($del_path))
  50. {
  51. echo json_encode(['msg' => '缓存删除成功','code' =>0],320);
  52. }else{
  53. echo json_encode(['msg' => '缓存删除失败','code' =>1],256);
  54. };


二、字符串操作函数

2.1、implode: 数组 -> 字符串

用字符串连接数组元素

  1. $url = "http://tpedu.io/20230308/demo2.php";
  2. $arr = ['html', 'css', 'js', 'vue'];
  3. echo implode(",", $arr) . "<br />";
  4. var_dump($arr);

2.2、explode: 字符串 -> 数组

使用一个字符串分割另一个字符串

  1. $pathinfo = $_SERVER['REQUEST_URI'];
  2. var_dump($pathinfo);
  3. $arr = explode("/", $pathinfo);
  4. var_dump($arr);
  5. // array_pop 从尾部甩出最后一个元素;
  6. array_pop($arr);
  7. // 方法
  8. $action = array_pop($arr);
  9. // 控制器
  10. $controller = array_pop($arr);
  11. echo $controller . " . " . $action;


2.3、str_replace

@str_replace(检查关键字,替换内容,监测语句,次数) : 字符串替换函数

  1. $search = ['交友', '广告', '转账', '陪聊'];
  2. $flag = ['**', '$$', '00', '@@'];
  3. $news = '本公司承接各类广告代理,提供转账陪聊服务...';
  4. echo "原句:" . $news . "<br />";
  5. echo "替换:" . str_replace($search, $flag, $news, $const). "<br />";
  6. if(!$const !==0){
  7. echo '提示:聊天内容带有敏感词,请保护好个人财产';
  8. }


2.4、substr mt_substr:字符串查找函数

  1. // substr(内容,开始坐标,截取多少位): 针对英文字符的截取
  2. // 生成随机函数
  3. $color = '#' . substr(md5(rand()),0,6);
  4. ?>
  5. <p style="color:<?= $color ?>">你好</p>
  6. <?php
  7. // mb_substr: 针对中文字符的截取
  8. echo mb_substr('php中文网',3,3);


三、url函数

3.1、parse_url()

解析 URL,返回其组成部分

  1. $url = "https://www.php.net/manual/zh/ref.strings.php?email=9526678@qq.com&id=1&gender=男";
  2. var_dump(parse_url($url));
  3. var_dump(parse_url($url, PHP_URL_PATH));


3.2、http_build_query()

生成url-encode之后的请求字符串

  1. $params = [
  2. 'city' => '苏州', // 要查询的城市
  3. 'key' => 'uwehqwjuehjbsdsdhk232323'
  4. ];
  5. $paramsString = http_build_query($params);
  6. var_dump($paramsString);


3.3、urlencode

urlencode 将字符串编码并将用于 URL 的请求部分

  1. echo urlencode($url);


3.4、urldecode : 解码

解码已编码的 URL 字符串

  1. echo urldecode('%E8%8B%8F%E5%B7%9E');


3.5、base64_encode

使用base64 对 string 进行编码

  1. $file = file_get_contents("https://wx2.sinaimg.cn/mw690/005OZPj8ly1hbsi593483j31e0230x29.jpg");
  2. //echo $file;
  3. $img = base64_encode($file);
  4. ?>
  5. <img src="data:image/jpeg;base64,<?= $img ?>" alt="模特">


3.6、base64_decode

对 base64 编码的 string 进行解码。

  1. base64_decode($img);
声明:本文内容转载自脚本之家,由网友自发贡献,版权归原作者所有,如您发现涉嫌抄袭侵权,请联系admin@php.cn 核实处理。
全部评论
文明上网理性发言,请遵守新闻评论服务协议