◆一本適合初學到進階學習,可以把PHP練至接案的實戰書◆
【超值學習資源】
全書完整範例/延伸練習題解/「用PHP打造一個ChatGPT聊天機器人」、
「行動購物網站製作」、「LINE聊天機器人開發」影音教學
打造最佳開發環境、深入互動程式核心、
強化資安防護機制、貼近業界實際應用
超過2萬人見證的PHP經典,全新面貌再進化,
掌握互動網頁程式設計最佳途徑
這本書適用:
▶ 想要減少自學試錯時間,快速上手PHP開發的人
▶ 有接觸過但又不想打掉重練的人
▶ 已經有基礎但缺乏實戰經驗,想要精進練功的人
▶ 想要運用PHP開發專案的人
▶ 想要改善原來PHP作品並且加強資安的人
掌握系統化的學習焦點
就能快速進入PHP開發領域
依研究報告指出,全球有8成的網站互動程式是使用PHP進行開發維護,
連當今熱門的網站架設平台WordPress也是以PHP基礎開發而成,
證明了PHP無可撼動的地位。本書深知自學者在過程中會遭遇的痛點,
秉持由淺入深的學習規劃,搭配最紮實的程式說明、最詳細的範例導引,
以及超實用的各種熱門專題,深入解說全新的PHP8在互動程式上的開發運用。
不僅兼容新舊版本的差異,更導入重要資安防護的觀念與機制,
並且運用貼近業界實務的開發技巧,
讓讀者能輕鬆地一站式接收到全面性的學習內容!
▶ 詳細解說入門概念
了解軟體特色,並快速建置布署全新PHP8、MySQL(MariaDB也適用)的環境。
▶ 徹底掌握語法基礎
循序漸進深入PHP語法結構、程式流程與函式應用,徹底學會物件導向程式的開發與應用,並全面採用最新版的PHP語法,無痛接軌原有學習經驗,感受新一代程式開發精髓。
▶ 完全整合資料庫應用
資料庫應用是互動網站的核心,完整學習在PHP程式中以SQL指令來連接並操作MySQL資料庫,全面使用MySQLi函式、物件與預備語法,更進一步應用PDO打造更有效率、更安全的應用程式。
▶ 進階強化資安防護
面對資安新挑戰,介紹跨站腳本攻擊、跨站請求偽造以及SQL注入(隱碼攻擊)等常見的網站攻擊方式,並說明PHP如何在程式中進行防護的實務方法。
▶ 深入挑戰熱門實例
全方位專題實作,能由實戰中發揮學習的成果。以不同訴求的主題範例,開發出精彩而實用的案例,如網路留言版、會員系統、網路相簿、購物車,並利用教學影片介紹如何用PHP打造ChatGPT聊天機器人、行動購物網站與LINE聊天機器人等實例,讓學習更貼進真實應用。
目錄
01 認識PHP與MySQL
PHP是一種伺服器端網頁程式語言,可嵌入於HTML中來運行。MySQL則是一個小型關聯式資料庫系統,被廣泛地應用在網際網路上的中小型網站,甚至大型商業網站中。PHP與MySQL皆為開放原始碼的軟體,不僅在學習上門檻最低,在部署建置可執行伺服器的成本也最低,運行效能卻遠遠超過預期,在這幾年的推廣下已經成為許多個人或是企業在開發網頁應用程式時喜愛並信賴的組合。
~ 關於網站應用程式的開發
~ 認識PHP與MySQL
~ 當PHP遇上了MySQL
02 打造PHP/MySQL的運作環境
無論學習何種網頁程式語言,第一件事就是要建置一個可以測試運作程式的環境,這對於學習或開發都是最重要的一件事。部署執行程式的環境會讓程式設計師更了解伺服器運作與程式碼之間的關係,對於開發程式時會有更大的幫助。
~ 部署程式環境前的注意事項
~ 安裝XAMPP
~ Apache、MySQL、PHP的調整
~ 程式編輯器
03 PHP程式基礎語法
PHP是一種被廣泛應用的網頁程式語言,它可嵌入到HTML中,適合互動網站的開發。本章的重點在於介紹PHP基本的語法結構,變數、常數的使用以及資料型別,最後說明運算子與運算元的應用。對於學習PHP的學員來說,熟悉這些重要的內容對於PHP來說,是十分重要的基本功夫。
~ PHP 的語法結構
~ 變數的使用
~ 常數的使用
~ 資料型別
~ 運算子與運算式
~ 表單資料的傳送與接收
~ 程式引入檔
04 程式流程控制
程式的執行基本上是循序漸進,由上而下一行一行的執行。但是有時內容會因為判斷的情況不同而去執行不同的程式區塊,或是設定條件執行某些重複的內容。這樣的情況就是所謂的程式流程控制。在 PHP 中流程控制的指令分為兩類:條件控制與迴圈。本章將針對這些程式流程控制指令進行詳細的說明。
~ 流程控制的認識
~ if條件控制
~ switch條件控制
~ 迴圈
~ for計次迴圈
~ 流程控制的跳躍指令
05 函式的使用
隨著程式開發的內容越來越多,在操作時會有許多相同的程式動作與判斷,不免會產生許多相似或重複的內容。若將這些經常使用或重複的程式碼整理成一個程式區段,在程式中可以隨時呼叫使用,這樣的程式區段就叫做函式。函式具有重複使用性,可以提升程式效率,讓程式碼更為精簡,結構更為清楚,也讓程式除錯或是維護上更有效率。
~ 認識函式
~ 自訂函式
~ PHP的內建函式
~ 數學函式
~ 電子郵件函式
~ 其他重要函式
06 陣列的使用
陣列與變數相同,是提供儲存資料的記憶體空間。陣列可說是一群性質相同變數的集合,屬於一種循序性的資料結構,陣列中的所有資料在記憶體中佔有連續的記憶體空間。每一個陣列擁有一個名稱,做為識別該陣列的標誌。在PHP中陣列可依需求建置一維、二維,甚至多維的陣列。在建置前並不需要事先宣告資料的數量大小,而每個陣列元素的值並不一定要相同,只要使用索引鍵即可自由存取指定陣列元素中的值。
~ 認識陣列
~ 一維陣列
~ 二維陣列與多維陣列
~ foreach 迴圈的使用
~ 陣列相關函式使用
07 字串的使用
在PHP中處理程式時最常使用的資料大概就是字串了。一般來說,字串是由字元組合,除了直接顯示字串本身的資料外,有時會為了需求而必須調整、分割合併、擷取取代字串,甚至格式化輸出的內容。除此之外,程式處理時我們甚至還需要對字串進行查詢、比對、分析、轉換,甚至加密,讓字串能夠充分應用在程式之中。PHP提供了一系列實用而功能強大的函式,可以幫助我們解決所有字串上的需求。
~ 字串輸出與調整
~ 字串分割合併
~ 字串查詢
~ 字串擷取及取代
~ 字串格式化
~ 字串分析
~ 字串轉換
~ 字串比對
~ 字串加密
~ 正規表達式
08 日期時間的應用
在程式中日期時間的資料應用很頻繁,也很重要。如何取得正確的日期時間,又如何整理成要使用的格式,就必須依靠日期時間的函式。在本章中將整理PHP中與日期時間相關的函式,不僅能夠取得系統時間及各個時區的相對時間,還能快速取得許多日期時間的重要資訊。最重要的是在獲取這些資訊後,能依照所需要的格式輸出顯示在頁面上。
~ 取得日期時間
~ 設定日期時間格式
~ 時間戳記
~ 檢查日期時間
09 檔案的處理
檔案的處理在 PHP 程式中是相當重要的,操作的內容不僅是對於資料夾或檔案的複製、移動、更名或刪除,在小型或單純的系統中,也可以將資料寫入檔案或是由檔案中讀出,進而取代資料庫執行資料交換、儲存的動作。另外由客戶端將檔案上傳到伺服器中,也是程式開發中相當重要的技術。
~ 資料夾、檔案路徑的相關資訊
~ 資料夾的處理
~ 檔案的處理
~ 檔案上傳
~ 讀取及寫入檔案的內容
10 Cookie與Session
使用者在瀏覽網頁時,並不是一直與伺服器保持在連線的狀態下,事實上當瀏覽者送出需求到伺服器端處理後將結果回傳顯示,就已經結束了與伺服器的連線。所以當需要新資料或是更新顯示內容時,都必須重新載入頁面或是重新送出需求。但遇到在網站運作上有些需要「維持記憶」的狀況時,例如記住當前登入使用者的資訊,或是保持在購物車裡未結帳的商品以供下次繼續使用時,Cookie與Session的存在就是為了要解決網站不能保存狀態的問題。
~ 關於Cookie與Session
~ Cookie的使用
~ Session的使用
11 物件導向程式設計
物件導向的程式設計是近代程式開發的主流觀念,在專案的規劃龐大,處理的動作複雜的狀況下,可以藉助物件導向的特性:重複使用程式碼來簡化重複的動作,並可以解決結構化程式設計所面臨的資料與功能分離的問題。雖然開發人員可能很難一次完備物件中的所用方法及屬性,但是藉由擴充及延伸導入能讓原始的類別更加強大,產生更完美的物件供程式使用。
~ 認識物件導向
~ 定義類別與建立物件
~ 存取範圍
~ 繼承
12 MySQL資料庫的使用與管理
MySQL是一個快速、多執行緒、多使用者且功能強大的關聯式資料庫管理系統,不僅在執行時的效能突出、管理上的功能強大,運行中的穩定性更讓人印象深刻。難能可貴的是MySQL資料庫對於各式各樣的作業系統平台擁有出色的相容性,對於資訊安全的考量也相當完整,且更重要的,MySQL資料庫系統具備輕薄短小特質,無須依賴過於龐大的硬體資源來支撐即可順暢運行,大大降低建置的成本。
~ 關於資料庫
~ phpMyAdmin的使用
~ 資料庫與資料表的新增
~ MySQL資料庫的備份與還原
~ MySQL資料庫的安全設定
13 SQL語法的使用
SQL是用於資料庫中的標準數據查詢語言,是目前關聯式資料庫系統所使用查詢語法的標準,使用者可以應用SQL語法對資料庫系統進行資料的存取、編輯、刪除及管理⋯等動作。
~ 認識SQL語法
~ 定義資料庫物件語法
~ 查詢資料庫資料的內容
~ MySQL常用函式
~ 新增、更新與刪除資料
~ 多資料表關聯查詢
14 PHP與MySQL資料庫
PHP中提供許多操作MySQL資料庫的相關函式,能夠讓使用者存取MySQL資料庫中的資料。PHP在使用 MySQL資料庫的資源時必須經過以下的流程:建立連線、選擇資料庫、操作資料表、取得結果與讀取資料回傳。其中PHP對於MySQL的操作大部分都是應用SQL指令,所以若想要快速上手PHP與MySQL的整合應用,對於SQL語法要有相當的基礎。
~ 認識PHP與MySQL的運作
~ 使用MySQLi函式操作資料庫
~ 使用Mysqli物件操作MySQL
~ Prepared Statements:預備語法
~ 使用PDO物件操作MySQL
~ PHP與MySQL存取的安全性
~ 新增、讀取、更新與刪除資料
~ 查詢資料分頁
15 專題:網路留言版的製作
一個網站上的留言版,可以說是站長與網友溝通的橋樑。所以許多網站都希望能夠放置一個留言版,讓網友可以有一個交流的空間。在程式的撰寫上也是個很好的練習主題,除了連接資料庫,並可進行程式的瀏覽、新增、修改和刪除,將所有基本的功能一次完成,對於學習進階的程式開發,有很好的幫助。
01 認識PHP與MySQL
PHP是一種伺服器端網頁程式語言,可嵌入於HTML中來運行。MySQL則是一個小型關聯式資料庫系統,被廣泛地應用在網際網路上的中小型網站,甚至大型商業網站中。PHP與MySQL皆為開放原始碼的軟體,不僅在學習上門檻最低,在部署建置可執行伺服器的成本也最低,運行效能卻遠遠超過預期,在這幾年的推廣下已經成為許多個人或是企業在開發網頁應用程式時喜愛並信賴的組合。
~ 關於網站應用程式的開發
~ 認識PHP與MySQL
~ 當PHP遇上了MySQL
02 打造PHP/MySQL的運作環境
無論學習何種網頁程式語言,第一件事就是要建置...