### :-: File文件處理類****
*****
`
~~~
<?php
// +----------------------------------------------------------------------
// | Created by PHPstorm: JRKAdmin框架 [ JRKAdmin ]
// +----------------------------------------------------------------------
// | Copyright (c) 2019~2022 [LuckyHHY] All rights reserved.
// +----------------------------------------------------------------------
// | SiteUrl: http://www.luckyhhy.cn
// +----------------------------------------------------------------------
// | Author: LuckyHhy <jackhhy520@qq.com>
// +----------------------------------------------------------------------
// | Date: 2020/3/18-10:53
// +----------------------------------------------------------------------
// | Description:
// +----------------------------------------------------------------------
namespace Jrk;
class File
{
/**
* @param $dir
* @return bool
* @author: LuckyHhy <jackhhy520@qq.com>
* @date: 2020/3/18
* @name: mk_dir
* @describe:目錄名
*/
public static function mk_dir($dir)
{
$dir = rtrim($dir, '/') . '/';
if (!is_dir($dir)) {
if (mkdir($dir, 0700, true) == false) {
return false;
}
return true;
}
return true;
}
/**
* @param $filename
* @return bool|false|string
* @author: LuckyHhy <jackhhy520@qq.com>
* @date: 2020/3/18
* @name: read_file
* @describe:讀取文件內容
*/
public static function read_file($filename)
{
$content = '';
if (function_exists('file_get_contents')) {
@$content = file_get_contents($filename);
} else {
if (@$fp = fopen($filename, 'r')) {
@$content = fread($fp, filesize($filename));
@fclose($fp);
}
}
return $content;
}
/**
* @param $filename
* @param $writetext
* @param string $openmod
* @return bool
* @author: LuckyHhy <jackhhy520@qq.com>
* @date: 2020/3/18
* @name: write_file
* @describe:寫文件
*/
public static function write_file($filename, $writetext, $openmod = 'w')
{
if (@$fp = fopen($filename, $openmod)) {
flock($fp, 2);
fwrite($fp, $writetext);
fclose($fp);
return true;
} else {
return false;
}
}
/**
* @param $dirName
* @return bool
* @author: LuckyHhy <jackhhy520@qq.com>
* @date: 2020/3/18
* @name: del_dir
* @describe:刪除目錄
*/
public static function del_dir($dirName)
{
if (!file_exists($dirName)) {
return false;
}
$dir = opendir($dirName);
while ($fileName = readdir($dir)) {
$file = $dirName . '/' . $fileName;
if ($fileName != '.' && $fileName != '..') {
if (is_dir($file)) {
self::del_dir($file);
} else {
unlink($file);
}
}
}
closedir($dir);
return rmdir($dirName);
}
/**
* @param $surDir
* @param $toDir
* @return bool
* @author: LuckyHhy <jackhhy520@qq.com>
* @date: 2020/3/18
* @name: copy_dir
* @describe:復制目錄
*/
public static function copy_dir($surDir, $toDir)
{
$surDir = rtrim($surDir, '/') . '/';
$toDir = rtrim($toDir, '/') . '/';
if (!file_exists($surDir)) {
return false;
}
if (!file_exists($toDir)) {
self::mk_dir($toDir);
}
$file = opendir($surDir);
while ($fileName = readdir($file)) {
$file1 = $surDir . '/' . $fileName;
$file2 = $toDir . '/' . $fileName;
if ($fileName != '.' && $fileName != '..') {
if (is_dir($file1)) {
self::copy_dir($file1, $file2);
} else {
copy($file1, $file2);
}
}
}
closedir($file);
return true;
}
/**
* @param $dir
* @return array
* @author: LuckyHhy <jackhhy520@qq.com>
* @date: 2020/3/18
* @name: get_dirs
* @describe: 列出目錄
*/
public static function get_dirs($dir)
{
$dir = rtrim($dir, '/') . '/';
$dirArray[][] = null;
if (false != ($handle = opendir($dir))) {
$i = 0;
$j = 0;
while (false !== ($file = readdir($handle))) {
if (is_dir($dir . $file)) {
//判斷是否文件夾
$dirArray['dir'][$i] = $file;
$i++;
} else {
$dirArray['file'][$j] = $file;
$j++;
}
}
closedir($handle);
}
return $dirArray;
}
/**
* @param $dir
* @return false|int
* @author: LuckyHhy <jackhhy520@qq.com>
* @date: 2020/3/18
* @name: get_size
* @describe:統計文件夾大小
*/
public static function get_size($dir)
{
$dirlist = opendir($dir);
$dirsize = 0;
while (false !== ($folderorfile = readdir($dirlist))) {
if ($folderorfile != "." && $folderorfile != "..") {
if (is_dir("$dir/$folderorfile")) {
$dirsize += self::get_size("$dir/$folderorfile");
} else {
$dirsize += filesize("$dir/$folderorfile");
}
}
}
closedir($dirlist);
return $dirsize;
}
/**
* @param $dir
* @return bool
* @author: LuckyHhy <jackhhy520@qq.com>
* @date: 2020/3/18
* @name: empty_dir
* @describe:檢測是否為空文件夾
*/
public static function empty_dir($dir)
{
return (($files = @scandir($dir)) && count($files) <= 2);
}
/**
* @param $name
* @param string $value
* @param $path
* @param bool $cached
* @return array|bool|int|mixed|string
* @author: LuckyHhy <jackhhy520@qq.com>
* @date: 2020/3/18
* @name: cache
* @describe:文件緩存與文件讀取
*/
public function cache($name, $value = '', $path = RUNTIME_PATH, $cached = true)
{
static $_cache = array();
$filename = $path . $name . '.php';
if ('' !== $value) {
if (is_null($value)) {
// 刪除緩存
return false !== strpos($name, '*') ? array_map("unlink", glob($filename)) : unlink($filename);
} else {
// 緩存數據
$dir = dirname($filename);
// 目錄不存在則創建
if (!is_dir($dir)) {
mkdir($dir, 0755, true);
}
$_cache[$name] = $value;
return file_put_contents($filename, strip_whitespace("<?php\treturn " . var_export($value, true) . ";?>"));
}
}
if (isset($_cache[$name]) && $cached == true) {
return $_cache[$name];
}
// 獲取緩存數據
if (is_file($filename)) {
$value = include $filename;
$_cache[$name] = $value;
} else {
$value = false;
}
return $value;
}
}
~~~
`
- 空白目錄
- thinkphp5
- tools-常用類庫
- redis類庫
- Excel類庫
- File文件操作類庫
- Http請求類庫
- Maile郵件發送
- Hooks行為鉤子
- 七牛云
- 隨機數和字符串生成
- 字符串處理
- 時間類處理
- tree型轉換
- 工具類庫
- 文件打包下載
- 常用功能
- 文件上傳
- php生成word文檔
- elasticsearch 基本搜索
- 使用jwt開發API接口
- 安裝模及搭建
- ApiCheck.php
- ApiCheckLogin.php
- common.php
- Login.php
- Comment.php
- 漢字轉拼音
- 安裝使用
- Pinyin類
- elasticsearch操作
- 常用方法
- 數據源生成layui-select
- 獲取自定義配置項
- 百度編輯器
- 格式化文件大小
- 多語言設置
- hook監聽
- 域名綁定到模塊
- thinkphp6
- 文件上傳
- tp5totp6
- 創建路徑
- 獲取類所有方法
- password_hash加密驗證
- 生成 qrcode
- 郵件發送
- 獲取QQ信息
- GoogleAuthenticator
- redis限流
- redis 加鎖
- 百度翻譯
- QueryList爬取數據
- 獲取時間類
- 命令
- Git常用命令
- easyswoole
- pix_qrcode
- 驗證 cpf,cnpj
- php常用方法
- 日志
- 卡通頭像
- 兩位小數
- 圖片轉base64
- auth加密解密
- phpoffice/phpspreadsheet導入導出
- fastadmin
- 樹結構
- 單選框
- 復選框
- 二級搜索
- select選擇框
- selectpage選中回調事件
- 標簽添加
- 修改where條件
- 表格列表中添加input框
- selectpage事件
- fieldlist
- js操作
- test_js
- 多表格
- template模板