環(huán)境準(zhǔn)備:
apache:Web服務(wù)器端軟件
MAMP : MacOS + Apache + MySQL + PHP (PHP服務(wù)器運行環(huán)境)
Mac搭建PHP開發(fā)環(huán)境(mamp+phpstorm+xdebug)
遇到報錯問題:You don't have permission to access / on this server
PHP 和 Apache 的關(guān)系 請參考
語法
先了解php大致的使用,有了個整體的印象,后面到使用的時候可以下載php手冊隨時參看。
PHP基本使用
1 1、數(shù)組
2 2、函數(shù)
2.1 可變函數(shù)
2.1.1 通過變量的值來調(diào)用函數(shù)
2.2 內(nèi)置函數(shù)
2.2.1 php內(nèi)置了很多函數(shù),可以直接調(diào)用,例如:str_replace
3 3、類和對象
3.1 區(qū)別
3.1.1 對象是具體的實例,是一類東西的一個具體實例。eg:五菱宏光
3.1.2 類是抽象的概念,是一類東西的結(jié)構(gòu)描述。eg:汽車
3.2 函數(shù)
3.2.1 在面向過程的程序設(shè)計中function
3.2.2 構(gòu)造函數(shù)
3.2.2.1 __construct 對象創(chuàng)建的時候調(diào)用
3.2.3 析構(gòu)函數(shù)
3.2.3.1 __destruct 1、代碼執(zhí)行完會自動回收 2、顯式的銷毀unset($car)
3.2.4 函數(shù)名不區(qū)分小大寫
3.2.5 函數(shù)與變量都不需要先申明。php是先解析再執(zhí)行,與oc是不一樣的除了"條件函數(shù)"和"函數(shù)中的函數(shù)"
3.3 屬性
3.3.1 一個類它所擁有的屬性,eg:汽車的屬性是 輪胎
3.3.2 外部訪問:類->對象操作符
3.3.3 靜態(tài)屬性:使用::雙冒號,不允許用->訪問
3.3.4 內(nèi)部調(diào)用:使用$this偽變量調(diào)用
3.4 關(guān)鍵字
3.4.1 public(默認)、protected、private (適用于:屬性、方法)
3.5 方法
3.5.1 在面向?qū)ο笾衒unction
3.5.2 靜態(tài)方法
3.5.2.1 static修飾
3.5.2.1.1 可以通過類名直接調(diào)用,操作符為雙冒號::
3.5.2.1.2 不允許用$this偽變量,要用self parent
3.5.2.2 構(gòu)造函數(shù)定義成了私有方法,則不允許直接實例化對象,要用靜態(tài)方法了
3.6 繼承
3.6.1 使用 parent:: 調(diào)用父類的函數(shù)
3.7 重載
3.7.1 當(dāng)屬性或者方法不存在的時候,動態(tài)的創(chuàng)建屬性與方法
3.7.2 屬性的重載通過__set,__get,__isset,__unse
3.7.3 方法的重載通過__call來實現(xiàn)
4 4、字符串操作
4.1 定義的方式
4.1.1 1、單引號 2、雙引號 3、heredoc語法結(jié)構(gòu)
4.1.2 區(qū)別
4.1.2.1 單引號--->普通字符
4.1.2.2 雙引號-->可以包含字串變量
4.2 連接
4.2.1 用 . 把字符串拼接起來
4.3 相關(guān)函數(shù)
4.3.1 去空格、計算長度、截取、查找字符串、替換字符串、格式化字符串、合并與分割、字符串的轉(zhuǎn)義
5 11、數(shù)據(jù)庫操作
5.1 主流的數(shù)據(jù)庫
5.1.1 sSQL,MySQL,Sybase,Db2,Oracle,PostgreSQL,Access
5.2 連接MySQL數(shù)據(jù)庫
5.2.1 mysql_connect
5.2.1.1 $host,$user,$pass
5.3 查詢
5.3.1 分頁數(shù)據(jù):利用當(dāng)前頁為$page,每頁顯示$n條數(shù)據(jù)
5.4 插入
5.5 更新與刪除數(shù)據(jù)
6 10、PHP異常處理
6.1 使用
6.1.1 try catch,throw拋出的異常會在catch中捕獲
6.2 異常處理類
6.2.1 Exception
6.2.2 所在行號:$ex->getLine()
6.2.3 所在文件:$ex->getFile()
7 9、圖形圖像操作
7.1 PHP的GD庫是用來處理圖形的擴展庫
7.2 驗證碼的實現(xiàn)原理
7.2.1 循環(huán)進行隨機繪制來實現(xiàn)噪點干擾
7.3 圖片加水印原理
7.3.1 在圖片上面加上一個字符串或者logo、圖片。imagecopy
8 8、取得當(dāng)前的Unix時間戳:time()
8.1 時間戳
8.1.1 從 1970年1月1日 00:00:00 到當(dāng)前時間的秒數(shù)之和
8.2 獲取當(dāng)前時間
8.2.1 Date/Time 函數(shù)
8.3 取得日期的Unix時間戳
8.3.1 strtotime
9 7、文件系統(tǒng) (Filesystem)
9.1 讀取文件內(nèi)容
9.1.1 整個文件全部讀取到一個字符串 file_get_contents
9.2 文件是否存在
9.3 取得文件的修改時間
9.4 取得文件的大小
10 6、會話控制(session與cookie)
10.1 cookie
10.1.1 讀寫
10.1.1.1 setcookie/$_COOKIE['key']
10.1.2 刪除
10.2 session
10.2.1 讀寫
10.2.1.1 _SESSION
10.2.2 刪除
10.2.2.1 unset 例如:unset($_SESSION['name']);
10.2.2.2 刪除所有:session_destroy();但session_id任然存在。不會立即銷毀全局變量$_SESSION中的值,下次啟動時才會清空。unset是立即銷毀的
10.3 關(guān)系
10.3.1 將用戶的會話數(shù)據(jù)存儲在服務(wù)端,沒有大小限制,session id是通過cookie來保存的,因此從某種程度上來說,seesion依賴于cookie
11 5、正則表達式
11.1 基本語法
11.1.1 /模式/ 主要轉(zhuǎn)義
11.2 元字符
11.2.1 有特殊含義 例如:^:表示開始 或者 取反(在方括號內(nèi))
11.3 貪婪模式
11.3.1 每個元字符匹配一個字符 使用 + 可以匹配多個
11.4 懶惰模式
11.4.1 使用 - 盡可能少的匹配
11.5 進行模式匹配
11.5.1 $matches[0]保存完整模式的所有匹配
11.5.2 $matches[1] 保存第一個子組(括號)的所有匹配
11.6 搜索和替換
11.6.1 $0,代表全匹配,$1,代表匹配第一個子組