## 1、打開文件fopen()
* 描述:打開文件或者 URL
* 語法:
```
resource fopen ( string $filename , string $mode )
```
* 參數:$filename,指定要打開的目標文件或URL;$mode,指定文件的打開方式。
* 提示:為移植性考慮,在用 fopen()打開文件時總是使用 'b' 標記。binary
* 返回值:成功時返回文件指針資源,如果打開失敗,本函數返回 FALSE。

以寫入方式打開,它自動創建文件

## 2、打開文件的方式

## 3、關閉文件fclose()
* 描述:關閉一個已打開的文件指針
* 語法:
```
bool fclose ( resource $handle )
```
* 參數:$handle必須是由fopen()打開的文件指針。

## 4、讀取指定大小文件內容fread()
* 描述:讀取文件(可安全用于二進制文件)
* 語法:
```
string fread ( resource $handle , int $length )
```
* 參數:$handle是由fopen()創建的handle;$length最多讀取的字節數。
* 提示:在區分二進制文件和文本文件的系統上(如 Windows)打開文件時,fopen() 函數的 mode 參數要加上 ‘b’。
* 返回值:返回所讀取的字符串, 或者在失敗時返回 FALSE。

## 5、讀取一行內容fgets()
* 描述:從文件指針中讀取一行
* 語法:
```
string fgets ( resource $handle [, int $length ] )
```
* 參數:
$handle:文件指針必須是有效的
$length:從 handle指向的文件中讀取一行并返回長度最多為 length - 1 字節的字符串。碰到換行符(包括在返回值中)、EOF 或者已經讀取了 length - 1 字節后停止(看先碰到那一種情況)。如果沒有指定 length,則默認為 1K,或者說 1024 字節。
* 返回值:從指針 handle 指向的文件中讀取了 length - 1 字節后返回字符串。 如果文件指針中沒有更多的數據了則返回 FALSE。

## 6、讀取文件內容到數組中file()
* 描述:把整個文件讀入一個數組中
* 語法:
```
array file ( string $filename [, int $flags = 0 ] )
```
* 參數:
$filename,文件的路徑;
$flags,附加選項;
FILE_USE_INCLUDE_PATH(1):在include_path 中查找文件;
FILE_IGNORE_NEW_LINES(2):在數組的每個元素末尾不添加換行符;
FILE_SKIP_EMPTY_LINES(4):跳過空行。
* 注意:不需要打開文件和關閉文件。


## 7、讀取文件內容到字符串中file_get_contents()
* 描述:將整個文件讀入一個字符串 ,不用打開文件,也不用關閉文件
* 語法:
```
string file_get_contents ( string $filename )
```
* 返回:返回讀取的數據,或在失敗時返回false。

## 8、實例:讀取記事本中的內容,并用表格展示出來


## 9、寫入文件
* 描述:寫入文件(可安全用于二進制文件)
* 語法:
```
int fwrite ( resource $handle , string $string )
```
* 返回:返回寫入的字符數,出現錯誤時則返回 FALSE 。

## 10、將一個字符串寫入文件
* 描述:和依次調用 fopen(),fwrite()以及 fclose() 功能一樣。
* 語法:
```
int file_put_contents ( string $filename , mixed $data [, int $flags = 0] )
```
* 參數:
$filename要被寫入數據的文件名。
$data要寫入的數據。類型可以是 string,array(一維數組)。
$flags附加選項。
FILE_USE_INCLUDE_PATH(1) 在 include 目錄里搜索 filename
FILE_APPEND(8)如果文件 filename已經存在,追加數據而不是覆蓋。
LOCK_EX(2)在寫入時獲得一個獨占鎖。
* 提示:如果文件不存在,則會自動創建。如果文件過大,不能一次性處理。
* 返回:該函數將返回寫入到文件內數據的字節數,失敗時返回FALSE。

## 11、拷貝文件
* 描述:將文件從 source 拷貝到 dest。
* 語法:
```
bool copy ( string $source , string $dest )
```
* 提示:如果目標文件存在,則會覆蓋。

## 12、刪除文件
* 語法:
```
bool unlink ( string $filename )
```
* 返回:成功時返回 TRUE, 或者在失敗時返回 FALSE。
* 提示:可以刪除虛擬空間之外的文件,但必須使用相對路徑(../),但必須有權限。
* 注意:刪除的文件不會進入回收站。

## 13、其它的文件操作函數
* filesize(),可以獲取文件大小,單位為字節。
* is_writable(),判斷文件是否可寫。
* is_readable(),判斷文件是否可讀。
* feof(),判斷文件指針是否到達文件結尾。
* filectime(),獲取創建文件的時間。
* fileatime(),獲取文件最新訪問時間。
* filemtime(),獲取文件最后修改時間。
- 1、CMD下MySQL操作
- 1.1具體步驟
- 1.2使用phpMyAdmin導入數據庫
- 1.3PHP連接MySQL服務器
- 1.4選擇當前數據庫
- 1.5設置客戶端字符集
- 1.6執行各種SQL語句
- 1.7從結果集獲取一行數據
- 1.8獲取記錄數
- 1.9綜合案例:學生信息管理
- 1.10PHP處理復選框數據
- 2、PHP操作目錄、文件
- 2.1PHP操作目錄
- 2.2綜合實例:遞歸遍歷phpMyAdmin下的所有條目
- 2.3PHP操作文件
- 2.4綜合實例:遞歸刪除phpMyAdmin目錄
- 3、PHP分頁、HTTP協議
- 3.1PHP數據分頁
- 3.2HTTP協議概述
- 3.3HTTP協議之URL
- 3.4HTTPWatch抓包工具使用
- 3.5HTTP協議之請求
- 3.6HTTP協議之響應
- 3.7綜合案例:實現視頻文件下載
- 4、圖像處理、文件上傳
- 4.1圖像處理概述
- 4.2創建圖像和銷毀圖像
- 4.3圖像操作
- 4.4實例:圖像驗證碼
- 4.5實例:往圖像上寫入一行漢字
- 4.6實例:制作圖像水印效果
- 4.7實例:生成圖像縮略圖
- 4.8文件上傳
- 4.9實例:單個文件上傳
- 4.10實例:多個文件上傳
- 5、COOKIE和SESSION
- 5.1COOKIE概述
- 5.2COOKIE操作
- 5.3COOKIE設置
- 5.4刪除COOKIE數據
- 5.5COOKIE的總結
- 5.6SESSION概述
- 5.7SESSION操作
- 5.8SESSION對應COOKIE的配置(php.ini)
- 5.9SESSION垃圾回收機制
- 6、實踐:在線相冊
- 6.1準備工作
- 6.2創建數據庫
- 6.3用戶登錄功能
- 6.4顯示照片列表
- 6.5添加照片
- 6.6顯示照片詳細信息
- 7、面向對象
- 7.1什么是面向過程的編程思想
- 7.2什么是面向對象的編程思想?
- 7.3類和對象的關系
- 7.4類的定義
- 7.5類的成員屬性定義
- 7.6類的成員方法定義
- 7.7創建類的實例對象
- 7.8對象屬性操作
- 7.9對象方法操作
- 7.10偽變量$this的使用
- 7.11類常量的定義
- 7.12構造方法
- 7.13析構方法
- 7.14靜態屬性和靜態方法
- 7.15OOP中內存的分配情況
- 7.16類的封裝性
- 7.17類的繼承性
- 7.18類的多態
- 7.19最終類和最終方法
- 7.20抽象類和抽象方法
- 7.21接口技術
- 7.22類的自動加載
- 7.23對象克隆
- 7.24對象遍歷
- 7.25常用魔術方法
- 7.26面向對象的設計模式
- 7.27綜合案例:學生信息管理系統
- 7.28工廠設計模式
- 7.29重載
- 7.30變量序列化
- 7.31常用的魔術常量
- 8、命名空間和PDO
- 8.1靜態延時綁定
- 8.2命名空間概述
- 8.3使用命名空間
- 8.4namespace關鍵字
- 8.5命名空間元素的導入和別名
- 8.6PDO概述
- 8.7PDO對象常用方法
- 8.8PDOStatement對象常用方法
- 8.9PDO錯誤處理
- 8.10SQL語句預處理
- 9、Smarty模板引擎
- 9.1模板引擎的工作原理
- 9.2Smarty快速入門
- 9.3Smarty配置
- 9.4Smarty模板(視圖)中的變量
- 9.5Smarty循環——foreach
- 9.6Smarty循環——section循環
- 9.7Smarty條件判斷——if語句
- 9.8Smarty變量調節器
- 10、MVC框架
- 10.1MVC框架思想原理
- 10.2MVC實例:學生信息管理
- 10.3MVC第1個版本:整合學生模塊和新聞模塊
- 10.4MVC第2個版本:基礎模型類的實現
- 10.5MVC第3個版本:工廠模型類
- 10.6MVC第4個版本:控制器類的實現
- 10.7MVC第5個版本:添加學生信息
- 10.8MVC第6個版本:控制器類的進一步優化
- 10.9MVC第7個版本:刪除新聞數據
- 10.10MVC第8個版本:基礎控制器類實現
- 10.11MVC第9個版本:學生信息修改
- 10.12MVC第10個版本:文件簡單分目錄
- 10.13MVC第11個版本:前端控制器實現
- 10.14MVC第12個版本:平臺概念的引入
- 10.15MVC第13個版本:類的自動加載
- 10.16MVC第14個版本:常用目錄常量配置
- 10.17MVC第15個版本:初始類實現
- 11、Blog系統實戰
- 11.1項目開發流程
- 11.2博客系統概述
- 11.3博客項目的MVC目錄結構
- 11.4博客項目MVC框架搭建
- 11.5學生信息管理(前臺)
- 11.6學生信息管理(后臺)
- 11.7封裝PDOWrapper類
- 11.8PDOWrapper類與MVC框架整合
- 11.9工廠模型類方法的實現
- 11.10封裝自己的Smarty類
- 11.11博客項目后臺——首頁管理
- 11.12博客項目后臺——用戶管理
- 11.13博客項目后臺——用戶登錄
- 11.14圖像驗證碼類
- 11.15用戶登錄——引入圖像驗證碼
- 11.16用戶訪問權限(簡單權限)
- 11.17博客項目后臺首頁相關信息修改
- 11.18博客項目后臺——用戶退出
- 11.19博客項目后臺——友情鏈接管理
- 11.20文章類別管理
- 11.21文章管理
- 11.22前臺首頁管理
- 11.23列表頁管理
- 11.24內容頁管理