1. 递归函数实战:删除指定目录 2. 字符串操作函

编辑: admin 分类: 电脑知识 发布时间: 2023-06-14 来源:互联网
一,递归函数实战:删除指定目录
  1. function delete_dir_file($dir)
  2. {
  3. // 初始状态
  4. $flag = false;
  5. // is_dir() 判断是否为目录
  6. if (is_dir($dir)) {
  7. // opendir() 打开目录句柄,成功则返回目录句柄的 resource, 或者在失败时返回 false
  8. if ($handle = opendir($dir)) {
  9. // readdir() 从目录句柄中读取条目(需要 opendir() 打开的目录句柄),成功则返回文件名 或者在失败时返回 false
  10. while (($file = readdir($handle)) !== false) {
  11. // 排除 ‘.'(表示有同级目录或文件) 和 '..'(表示有父目录)
  12. if ($file !== '.' && $file !== '..') {
  13. /**
  14. * 如果当前目录下没有目录,都是文件,则删除所有文件,跳出 if ($handle = opendir($dir)) 语句后删除当前目录
  15. * 如果当前目录下有子目录,则将当前目录作为参数调用自己 delete_dir_file($dir . DIRECTORY_SEPARATOR . $file)
  16. * 逐层深入,由内向外删除所有子目录和文件
  17. */
  18. // 判断当前是否为目录,是的话调用自己 delete_dir_file ($dir . DIRECTORY_SEPARATOR . $file)
  19. if (is_dir($dir . DIRECTORY_SEPARATOR . $file)) {
  20. delete_dir_file($dir . DIRECTORY_SEPARATOR . $file);
  21. } else {
  22. // 不是目录,是文件,用 unlink() 删除
  23. unlink($dir . DIRECTORY_SEPARATOR . $file);
  24. }
  25. }
  26. }
  27. }
  28. // 关闭打开的目录句柄
  29. closedir($handle);
  30. // 删除目录,成功将 $flag 设置为 true
  31. if (rmdir($dir)) {
  32. $flag = true;
  33. }
  34. }
  35. return $flag;
  36. }
  37. $del_path = __DIR__ . DIRECTORY_SEPARATOR . 'tmvc';
  38. if (delete_dir_file($del_path)) {
  39. echo json_encode(['msg' => '缓存目录删除成功', 'code' => 0], 320);
  40. } else {
  41. echo json_encode(['msg' => '缓存目录删除失败', 'code' => 1], 320);
  42. }
二,字符串操作函数1,implode()

将数组转换为字符串,用指定符号连接

  1. $arr = ['html', 'css', 'uniapp', 'vue', 'electron'];
  2. echo implode('|', $arr); // html|css|uniapp|vue|electron
2,explode()

将字符串转为数组,用字符串中的某个字符分割成若干数组成员

  1. echo $_SERVER['DOCUMENT_URI']; // /phpedu/1.php
  2. $pathinfo = explode("/", $_SERVER['DOCUMENT_URI']);
  3. var_dump($pathinfo);
  4. // array(3) { [0]=> string(0) "" [1]=> string(6) "phpedu" [2]=> string(5) "1.php" }
3,str_replace()

字符串替换,格式:

str_replace(
array|string $search,
array|string $replace,
string|array $subject,
int &$count = null
): string|array

  • search: 查找的目标值,也就是 needle。一个数组可以指定多个目标。

  • replace: search 的替换值。一个数组可以被用来指定多重替换。

  • subject:执行替换的数组或者字符串。也就是 haystack。如果 subject 是一个数组,替换操作将遍历整个 subject,返回值也将是一个数组。

  • count:如果被指定,它的值将被设置为替换发生的次数。

  1. // 敏感词列表
  2. $search = ['交友', '广告', '转账', '直播', '带货', '陪聊', '异性'];;
  3. // 需要发送的留言
  4. $chatMSG = '本公司承接各类广告代理,提供直播和带货教学,提供异性交友陪聊服务...';
  5. // 将留言中的敏感词替换为 *** ,返回替换后的字符串
  6. // 第四个参数返回一个变量,值为替换的次数
  7. $RES = str_replace($search, "**", $chatMSG, $count);
  8. echo $RES; // 本公司承接各类**代理,提供**和**教学,提供******服务...
  9. echo $count; // 6
  10. // 过滤留言信息
  11. if ($count == 0) {
  12. // 消息发送
  13. } else {
  14. // 警告功能 服务端主动向客户端发送消息
  15. }
4,substr()

获取子字符串,格式:

substr(string $string, int $offset, ?int $length = null): string

  • string:原字符串
  • offset:开始位置,正数从前面开始,负数从后面开始
  • length:截取长度
  1. // 生成随机验证码 随机颜色
  2. // rand() — 产生一个随机整数
  3. $str = md5(rand());
  4. $code = substr($str, 0, 4);
  5. echo "<h1>";
  6. for ($i = 0; $i < strlen($code); $i++){
  7. // 十六进制颜色
  8. $color = '#' . substr(md5(rand()), 0, 6);
  9. echo "<span style='color: {$color}'>";
  10. echo substr($code, $i,1);
  11. echo "</span>";
  12. }
  13. echo "</h1>";
5,mb_substr()

和 substr() 一样都是截取子字符串,不同的是 mb_substr() 可以针对多字节编码的汉字进行截取,从而防止乱码的出现。

  1. echo substr('你放弃了吗', 0, 4); // 你�
  2. echo mb_substr('你放弃了吗', 0, 4); // 你放弃了
三,url 操作函数1,urlencode()

将字符串编码并将其用于 URL 的请求部分,同时它还便于将变量传递给下一页。

除了 - _ . 之外的所有非字母数字字符都将被替换成百分号(%)后跟两位十六进制数。

空格则编码为加号(+)。

  1. echo urlencode('韩寒'); // %E9%9F%A9%E5%AF%92
2,urldecode()

解码已编码的 URL 字符串。

  1. echo urldecode('%E9%9F%A9%E5%AF%92'); // 韩寒
3,http_build_query()

生成 urlencode 编码之后的请求字符串(请求参数)

  1. $params = [
  2. 'city' => '合肥', // 新闻类型
  3. 'key' => '12545we2234343', // 接口调用key,通过聚合平台申请开通
  4. ];
  5. $paramsString = http_build_query($params);
  6. echo $paramsString; // city=%E5%90%88%E8%82%A5&key=12545we2234343
4,base64_encode()

使用 MIME base64 对数据进行编码,为了使二进制数据可以通过非纯 8-bit 的传输层传输,例如电子邮件的主体。Base64-encoded 数据要比原始数据多占用 33% 左右的空间。

  1. // 示例:将二进制图片进行编码,将编码结果作为 <img> 的 src 属性
  2. // 获取图片文件(二进制文件)
  3. $file = file_get_contents("http://img.hwidc.net/sql/O1CN01aBboqA1gvTtBoaBVx_!!3372144204-0-alimamacc.jpg_300x300q90.jpg_.webp");
  4. // 使用 MIME base64 对数据进行编码
  5. $file_base64 = base64_encode($file);
  6. // <img> 的 src 属性data:image/jpeg;base64,<?= $file_base64 ?>
  7. <img src="data:image/jpeg;base64,<?= $file_base64 ?>" alt="">
  8. // 页面上图片链接为:
  9. // Data:image/jpeg;base64,UklGRuBGAABXRUJQVlA4INRGAABQ9ACdASosASwBPjkYikOiIaETqfX8IAOEpu...
5,base64_decode()

对使用 MIME base64 编码的数据进行解码。

  1. $data = 'www.php.cn';
  2. $data64 = base64_encode($data);
  3. print $data64; // d3d3LnBocC5jbg==
  4. $decodeData = base64_decode($data64);
  5. print $decodeData; // www.php.cn
【本文由:湖北阿里云代理 http://www.558idc.com/aliyun.html 复制请保留原URL】