```
<?php
//Bytes/Kb/MB/GB/TB/EB
/**
* 轉換字節大小
* @param number $size
* @return number
*/
function transByte($size) {
$arr = array ("B", "KB", "MB", "GB", "TB", "EB" );
$i = 0;
while ( $size >= 1024 ) {
$size /= 1024;
$i ++;
}
return round ( $size, 2 ) . $arr [$i];
}
/**
* 創建文件
* @param string $filename
* @return string
*/
function createFile($filename) {
//file/1.txt
//驗證文件名的合法性,是否包含/,*,<>,?,|
$pattern = "/[\/,\*,<>,\?\|]/";
if (! preg_match ( $pattern, basename ( $filename ) )) {
//檢測當前目錄下是否存在同名文件
if (! file_exists ( $filename )) {
//通過touch($filename)來創建
if (touch ( $filename )) {
return "文件創建成功";
} else {
return "文件創建失敗";
}
} else {
return "文件已存在,請重命名后創建";
}
} else {
return "非法文件名";
}
}
/**
* 重命名文件
* @param string $oldname
* @param string $newname
* @return string
*/
function renameFile($oldname,$newname){
// echo $oldname,$newname;
//驗證文件名是否合法
if(checkFilename($newname)){
//檢測當前目錄下是否存在同名文件
$path=dirname($oldname);
if(!file_exists($path."/".$newname)){
//進行重命名
if(rename($oldname,$path."/".$newname)){
return "重命名成功";
}else{
return "重命名失敗";
}
}else{
return "存在同名文件,請重新命名";
}
}else{
return "非法文件名";
}
}
/**
*檢測文件名是否合法
* @param string $filename
* @return boolean
*/
function checkFilename($filename){
$pattern = "/[\/,\*,<>,\?\|]/";
if (preg_match ( $pattern, $filename )) {
return false;
}else{
return true;
}
}
/**
* 刪除文件
* @param string $filename
* @return string
*/
function delFile($filename){
if(unlink($filename)){
$mes="文件刪除成功";
}else{
$mes="文件刪除失敗";
}
return $mes;
}
/**
* 下載文件操作
* @param string $filename
*/
function downFile($filename){
header("content-disposition:attachment;filename=".basename($filename));
header("content-length:".filesize($filename));
readfile($filename);
}
/**
* 下載文件
* @param string $file_path 絕對路徑
*/
function downFile2($file_path) {
//判斷文件是否存在
$file_path = iconv('utf-8', 'gb2312', $file_path); //對可能出現的中文名稱進行轉碼
if (!file_exists($file_path)) {
exit('文件不存在!');
}
$file_name = basename($file_path); //獲取文件名稱
$file_size = filesize($file_path); //獲取文件大小
$fp = fopen($file_path, 'r'); //以只讀的方式打開文件
header("Content-type: application/octet-stream");
header("Accept-Ranges: bytes");
header("Accept-Length: {$file_size}");
header("Content-Disposition: attachment;filename={$file_name}");
$buffer = 1024;
$file_count = 0;
//判斷文件是否結束
while (!feof($fp) && ($file_size-$file_count>0)) {
$file_data = fread($fp, $buffer);
$file_count += $buffer;
echo $file_data;
}
fclose($fp); //關閉文件
}
/**
* 復制文件
* @param string $filename
* @param string $dstname
* @return string
*/
function copyFile($filename,$dstname){
if(file_exists($dstname)){
if(!file_exists($dstname."/".basename($filename))){
if(copy($filename,$dstname."/".basename($filename))){
$mes="文件復制成功";
}else{
$mes="文件復制失敗";
}
}else{
$mes="存在同名文件";
}
}else{
$mes="目標目錄不存在";
}
return $mes;
}
//剪切文件
function cutFile($filename,$dstname){
if(file_exists($dstname)){
if(!file_exists($dstname."/".basename($filename))){
if(rename($filename,$dstname."/".basename($filename))){
$mes="文件剪切成功";
}else{
$mes="文件剪切失敗";
}
}else{
$mes="存在同名文件";
}
}else{
$mes="目標目錄不存在";
}
return $mes;
}
/**
* 上傳文件
* @param array $fileInfo
* @param string $path
* @param array $allowExt
* @param int $maxSize
* @return string
*/
function uploadFile($fileInfo,$path,$allowExt=array("gif","jpeg","jpg","png","txt"),$maxSize=10485760){
//判斷錯誤號
if($fileInfo['error']==UPLOAD_ERR_OK){
//文件是否是通過HTTP POST方式上傳上來的
if(is_uploaded_file($fileInfo['tmp_name'])){
//上傳文件的文件名,只允許上傳jpeg|jpg、png、gif、txt的文件
//$allowExt=array("gif","jpeg","jpg","png","txt");
$ext=getExt($fileInfo['name']);
$uniqid=getUniqidName();
$destination=$path."/".pathinfo($fileInfo['name'],PATHINFO_FILENAME)."_".$uniqid.".".$ext;
if(in_array($ext,$allowExt)){
if($fileInfo['size']<=$maxSize){
if(move_uploaded_file($fileInfo['tmp_name'], $destination)){
$mes="文件上傳成功";
}else{
$mes="文件移動失敗";
}
}else{
$mes="文件過大";
}
}else{
$mes="非法文件類型";
}
}else{
$mes="文件不是通過HTTP POST方式上傳上來的";
}
}else{
switch($fileInfo['error']){
case 1:
$mes="超過了配置文件的大小";
break;
case 2:
$mes="超過了表單允許接收數據的大小";
break;
case 3:
$mes="文件部分被上傳";
break;
case 4:
$mes="沒有文件被上傳";
break;
}
}
return $mes;
}
```
- 課程介紹
- thinkphp5.0
- 安裝
- 開發規范
- 目錄結構
- 配置參數
- 系統常量
- tp5自帶的函數
- 助手函數
- 擴展類庫
- 基本類庫
- Workerman
- think-queue
- 驗證碼
- 圖片
- 權限認證
- 課前準備
- 數據庫設計
- 模塊設計
- 管理員管理
- 添加
- 編輯
- 刪除和批量刪除
- 列表頁
- 實列
- 權限管理
- 操作日志
- 基于行為的日記錄
- 行為日志的擴展
- 助手類庫
- 自建函數
- 將數組轉成uri字符串
- 獲取當前服務器的IP
- curl-post
- 截取文字中間的字符串
- 檢查中文姓名
- 省市區分別截取
- 抽獎概率問題
- 短信郵箱模板替換
- 生成csv
- PHP 圖片轉base64
- 銀行卡驗證
- json返回接口封裝
- 無限極分類
- 病毒
- xml和數組互轉
- xml轉成數組
- 數組轉xml
- tp控制器相關
- 獲取thinkph5下控制器和方法名
- 后臺查詢的簡單封裝
- 網址信息
- 獲取網站logo
- 判斷url是否存在
- 獲取title
- 判斷遠程文件是否存在
- 獲取頁面所有鏈接
- 過濾
- 截取
- 時間
- 獲取服務器信息
- 根據id生成唯一邀請碼
- 隨機顏色
- 數組字符串互換
- 創建多級目錄
- 懶人查詢
- 時間和時間戳轉換
- 房間id生菜
- 獲取需要的數組元素
- 文件和文件夾
- 文件類庫
- 文件夾
- 七牛云
- 七牛云運用場景
- 七牛云使用實例
- 郵箱
- 郵箱驗證
- 郵箱發送
- 數據庫
- 數據庫在thinkphp中的補充方法
- 備份和安全
- sql執行
- 數據庫備份2
- 時間日歷
- 時間格式化
- 日歷
- 圖片相關
- 自動獲取圖片主題顏色
- 獲取html中的圖片路徑
- 獲取圖片場景
- 獲取圖片實踐
- 圖片處理類
- 圖片處理場景
- 圖片處理實踐
- 數據驗證分析
- 身份證相關
- 新聞
- 自建類庫
- 簡易分類庫
- php 壓縮CSS代碼
- 身份證
- 分詞和抽詞
- 分詞應用場景
- 分詞實踐
- 中文轉拼音
- 中文轉拼音場景
- 中文轉拼音實踐
- 二維碼操作
- 二維碼場景
- 二維碼實踐
- 短地址
- PHPWord
- 插件化
- 插件擴展庫
- 插件列表
- 插件安裝和卸載
- 插件實踐
- 插件的離線安裝
- 計劃任務
- 計劃任務安裝
- 計劃任務實踐
- 定時器
- 注冊登錄
- 普通登錄注冊
- 第三方登錄注冊
- jwt接口登錄注冊
- 短信
- 飛鴿短信
- 阿里短信
- 消息隊列
- 網站地圖
- 全站靜態化
- 緩存
- 文件導出
- PDF生成
- phpword
- PHPExcel
- 其他類庫
- 百度
- 百度語音
- 快遞
- 跨域問題
- 寶塔
- 搜索記錄