[toc]
示例:php開發web在線管理器思路分析(主要是對目錄和文件進行管理)
## :-: **需求**
  微信廣告平臺創建朋友圈廣告和公眾號廣告等每次都要切換,老板讓開發個文件管理器,提前輸入好,定時勾選發送(當然沒做成,因為首先要模擬登錄微信廣告平臺,爬微信的數據,在將文件管理器的數據插入到微信數據庫中)
公共操作
## :-: **公共操作(第1步-第5步)**
- 如果是文件(顯示6-10、16、17的操作)
- 如果是目錄(顯示的是11-15操作)
>[info]創建、重命名(前倆是名字)、修改(這個是內容)、都需要提供表單,讓用戶進行操作
1、查看目錄:
  通過遞歸遍歷整個存文件的目錄,顯示出文件和子目錄
2、新建文件:
  判斷是否存在同名文件、名字是否合法。不存在,則可使用touch()創建
3、新建目錄:
  判斷是否存在同名目錄、名字是否合法。不存在,則可使用mkdir()創建
4、上傳文件
  is_uploaded_file()是否是post上傳,上傳后改名
5、目錄回退(回退其實就是跳轉)
  頂層目錄不可回退,非頂層通過dirname()函數,js進行跳轉
## :-: **操作文件**
6、查看文件:
  使用file_put_content()先讀取,放到表單中,展示出來
7、修改文件內容:
  判斷文件后綴,是圖片不能修改(因為圖片是二進制,修改也沒有意義,修改了圖片就不能顯示了)
  使用file_put_content()先讀取,放到表單中,展示出來,供用戶輸入,輸入完提交,在用file_put_content()寫入這個文件
8、重命名文件:
  判斷該是否存在同名文件、名字是否合法。不存在,則可使用rename()函數
9、刪除文件:
  判斷該文件是否存在,存在則可使用unlink()刪除
10、下載文件
  通過設置header頭,告訴瀏覽器,要下載附件
## :-: **操作目錄**
11、獲取目錄中的信息
  如果是最后一層目錄了,就提示用戶,沒有了。否則繼續顯示
12、復制目錄
  A目錄復制到B目錄
  B目錄存在直接復制,否則先創建B目錄在復制。使用copy()函數將A目錄下的所有文件和目錄復制過去
13、重命名目錄
  新名稱是否包含非法字符,使用rename()函數重命名
14、剪切目錄
  A目錄復制到B目錄
  B目錄存在直接剪切,否則先創建B目錄在剪切。
  判斷B目錄下是否有同名文件,有的話使用rename()函數改名后,在將A目錄下的所有文件和目錄copy()復制過去,刪除A目錄
15、刪除目錄
  直接unlink()遞歸刪除
16、復制文件
  A文件復制到B目錄下
  判斷B目錄是否存在,B目錄下是否有同名文件,都沒有的話copy()函數
  A文件復制到當前目錄(和A文件在同級目錄)下
  提供個表單供用戶輸入,提交后,判斷復制后的新名字是否和當前目錄中有重名,有無非字符
17、剪切文件
  A文件剪切到B目錄下
  判斷B目錄是否存在,B目錄下是否有同名文件,都沒有的話copy()函數后,在刪除A文件
  A文件剪切到當前目錄(和A文件在同級目錄)下
  判斷用戶輸入的是否是當前目錄,當前目錄下是否有同名文件,都沒有的話copy()函數后,在刪除A文件
- 雜談
- 開發 & 維護的工作流程
- 新手如何看php手冊 和 框架手冊
- 開發 & 維護的不同點
- 從0到1,搭建新項目的工作流程
- 從1到N,維護的工作流程
- 優化流程
- 生成錯誤日志和慢日志的方法
- 查錯思路
- 怎么快速接手一個項目
- 前端常用知識點
- javascript
- 自己封裝的函數
- 處理數字
- 功能代碼
- 動態添加圖片
- 判斷是手機端還是pc端
- javascript:;是什么意思?怎么用呢
- html & h5
- a標簽中target設置為blank和_blank有什么區別?
- 亂碼
- 提交方式:button標簽 和 input
- 塊元素
- 內聯元素
- h5特有屬性
- h5的localStorage【增、刪、改、查】
- jquery
- 常用方法
- 功能代碼
- 動態刪除圖片
- 一個按鈕,切換2種狀態
- 換膚
- 深入理解(function(){... })();
- json & xml
- json
- 語法速記
- json對象取值
- 字符串、對象、數組的區別
- xml
- [CDATA[%s]]的作用是什么
- 轉義字符
- CDATA 想被xml解析的文本數據
- CDATA 不想被xml解析的文本數據
- 微信小程序
- 其他
- websocket
- 跨域
- css
- 行內 & 內連 & 外連 寫法
- 優先級
- 更加精準的匹配
- 使用百分比如何生效
- php在html、js、jq中的的原生寫法
- *php在html中的語法
- php在js中的語法
- php在jq中的語法
- 正則表達式
- php常用基礎知識(思想為主)
- php為什么是“邊編譯邊運行”
- 冒號、endif、endwhile、endfor使用
- 遞歸思想(速記法)
- cookie和session的理解
- php常用內置(系統)函數
- 常量
- 字符串
- 數組
- 日期時間
- 文件 & 目錄
- 數學
- 程序執行
- 判斷
- 選項和信息(修改配置文件的)
- 錯誤處理 & 日志記錄
- 編碼格式
- session
- IP相關
- 類 & 對象
- 性能
- 其他函數
- 魔術方法
- $_SERVER
- 變量處理
- php自己封裝的一些函數
- 導入、導出、生成文件
- 數組
- 數字
- 字符串
- 其他
- 獲取linux硬件信息
- 常見插件/類庫使用
- 前端-框架/插件
- bootstrap 學習筆記
- layer 學習筆記
- layDate 學習筆記
- 百度ueditor1.4.4.3富文本編輯器
- quill富文本編輯器
- 百度ECharts圖形報表
- webuploader上傳圖片
- 后端類庫
- workerman 聊天室
- QRCODE 二維碼
- redis
- seaslog 日志
- phpspider 爬蟲
- Mailer 發送郵件
- simple_html_dom
- phpstorm使用
- 快捷鍵
- 連接mysql數據庫
- 斷點 + debug調試
- 運行內存不夠
- wamp環境
- yii、laravel、tp、開發自己的php框架
- 看框架源碼的思路
- tp5框架的使用
- 1、助手函數原理解析
- 開發自己的php框架
- 常用的開發思路 和 小功能實現代碼
- 爬蟲思路
- 功能點思路
- tp5判斷是不是異地登錄(簡單版)
- 微信開發,反向代理
- 微信開發,關閉當前頁面
- 消息隊列的實現
- 頁面靜態化
- session串號
- 站內信設計思路
- web在線管理器
- 語言相關(開發有關)
- 接收json(text/xml)格式數據
- 原生文件上傳(狀態碼)
- openssl擴展
- 打印對象 和 遍歷對象
- 使用OB緩存的幾個原則
- CLI模式執行php文件
- foreach時,添加元素 或 修改元素的值
- 功能點 代碼實現
- 生成url目錄樹(沒有pid)
- 多圖上傳(vue傳base64)
- 下載文件,耗時算法
- 生成商品二維碼
- 導出excel
- 搜索
- 阿里大魚發短信
- 使用阿里云oss
- location.href跳轉后,丟失用戶的session
- “\r ” “\r\n” “\t”的區別
- php的配置文件詳解
- 開啟錯誤日志
- 開啟慢日志
- 開啟短標簽
- 分析php-fpm.conf中的request_terminate_timeout參數