動態網站開發從入門到實踐:PHP 8+MySQL 8
定 價:¥69
中 教 價:¥41.40 (6.00折)
庫 存 數: 1
本書以動態網站開發實踐為目的,較為詳細地介紹了PHP 8及相關技術,內容包括PHP入門、HTML基礎、CSS基礎、數據與變量、運算符與流程控制、PHP函數、字符串處理、正則表達式、使用數組、面向對象編程、MySQL數據庫基礎、PHP訪問MySQL數據庫、表單與會話、文件處理及管理員子系統總括。本書立足基本理論和方法,注重實踐與應用環節。對概念、原理和方法的描述力求準確、嚴謹,對例子和實例力求代碼規范、面向實際應用。本書可作為普通高等院校計算機、軟件工程等相關專業的教材,也可作為動態網站開發者學習和使用PHP技術的參考書。
本書立足基本理論和方法、注重實踐與應用環節。對概念、原理和方法的描述力求準確、嚴謹,對范例力求代碼規范、面向實際應用。本書可作為普通高等院校計算機及相關專業的教材,也可作為Web應用開發者學習和使用PHP技術的參考書。
PHP于1995年推出了第一個版本,并逐漸成為動態網站及Web應用的一種主要開發語言,它以簡單性、開放性、低成本、安全性和適應性等受到Web程序員的青睞。2021年11月25日,PHP 8.1.0正式發布。隨著PHP版本的推陳出新,一些新特性被引入,有些特性被完善;但同時,一些特性被廢棄,有些特性經過改進已不再向后兼容。本書采用的主要軟件版本是PHP 8.1.5、MySQL 8.0.28,書中介紹的所有程序代碼都在此環境下運行通過。本書以動態網站開發實踐為目的,較為詳細地介紹了PHP 8及相關技術,包括HTML、CSS、MySQL等。全書立足基本理論和方法,注重實踐與應用環節。對概念、原理和方法的描述力求準確、嚴謹,對例子代碼力求精簡、規范。除第16章外,本書各章的最后都配有精選習題,便于讀者復習、鞏固、練習與提高。本書引入了一個較為完整的動態網站教務選課系統。系統分為管理員子系統和學生教師子系統兩部分。本書正文的各章實戰節及第16章以模塊化和面向對象方法為指導思想,介紹了管理員子系統的開發。學生教師子系統被設計成實驗題,以附錄形式放置在全書最后,供讀者練習。為了便于學習,本書使用了一些符號和特殊處理,在此進行說明。(1) 代碼左邊的行號是為了引用和講述方便而增加的,不是代碼的組成部分。(2) 在語言成分的語法格式描述中。 符號< >表示該項由程序員按規則指定或定義。 符號[]表示該項為可選項。 符號[]表示該項可不重復或重復多次。 符號|表示可以從兩項或多項連接起來的選項中選中一項。為標明第一項的開始處及最后一項的結尾處,可用符號{}將這些選項括起來。需要注意的是,這些符號在有些語言成分中具有特定的作用,例如,<>在HTML中表示標簽的開始和結束;在SQL SELECT語句中表示所有列;[]在PHP中表示訪問數組元素;{ }在PHP中表示塊語句的開始和結束,在CSS規則中表示聲明塊的開始和結束等。讀者在閱讀時需要根據上下文判斷每種符號的具體含義。為了便于學習,本書提供相關的教學資源,包括教學課件、視頻、所有例子和實戰的源代碼以及習題和實驗題的參考答案。歡迎讀者從清華大學出版社網站下載和使用。由于作者水平有限,書中難免有疏漏和不足之處,敬請廣大讀者批評指正。
作者2024年11月
第1章PHP入門/11.1PHP及其版本演變11.1.1什么是PHP11.1.2版本演變21.2Web基礎31.2.1URL31.2.2HTTP31.2.3HTML51.3在Web頁中嵌入PHP代碼61.3.1PHP標簽61.3.2嵌入PHP代碼塊71.4輸出HTML81.5代碼注釋91.6PHP工作原理101.7運行環境與開發環境101.7.1搭建運行環境111.7.2搭建開發環境151.8使用Apache NetBeans IDE151.8.1界面組成151.8.2基本操作16習題118第2章HTML基礎/192.1概念與基本元素192.1.1HTML文檔192.1.2HTML元素202.1.3若干基本元素212.2列表232.2.1無序列表232.2.2有序列表242.2.3定義列表242.3表格252.3.1簡單的表格252.3.2跨行與跨列252.3.3標題、表頭、表體和表腳262.3.4邊框與單元格間距262.3.5為列指定CSS樣式282.4表單292.4.1表單元素form292.4.2input元素302.4.3為控件元素指定標簽302.4.4textarea元素312.4.5選擇列表32習題232第3章CSS基礎/343.1CSS規則343.2CSS選擇器353.2.1基本選擇器353.2.2層次選擇器373.2.3偽類選擇器383.2.4偽元素選擇器393.3使用CSS403.3.1定義和使用樣式表403.3.2層疊處理413.4框模型與定位模式433.4.1框模型433.4.2相關術語443.4.3框的定位模式443.5CSS屬性和屬性值453.5.1字體和文本453.5.2顏色和背景473.5.3尺寸、邊距和邊框483.5.4定位與浮動503.5.5其他屬性513.6實戰: 浮動框與行內級塊框523.6.1管理員子系統頁頭523.6.2管理員子系統登錄表單53習題355第4章數據與變量/574.1PHP數據類型574.1.1標量類型574.1.2復合類型624.1.3null類型644.2類型轉換654.2.1自動類型轉換654.2.2強制類型轉換664.3變量與常量684.3.1PHP變量684.3.2變量賦值684.3.3變量作用域694.3.4可變變量724.3.5常量724.4錯誤與錯誤報告734.4.1錯誤類型734.4.2錯誤報告機制744.5實戰: 使用Heredoc字符串754.5.1輸出HTML文檔的前綴和后綴754.5.2呈現頁頭和頁腳764.5.3動態登錄表單77習題478第5章運算符與流程控制/805.1運算符805.1.1算術運算符805.1.2字符串運算符825.1.3比較運算符825.1.4邏輯運算符835.1.5位運算符845.1.6賦值運算符855.1.7其他運算符865.2表達式875.3流程控制895.3.1語句與語句塊895.3.2選擇結構905.3.3循環結構925.3.4跳轉語句955.4包含文件965.4.1包含文件語句965.4.2包含文件位置995.5實戰: 創建動態水平導航欄99習題5100第6章PHP函數/1036.1函數的聲明與調用1036.1.1函數聲明1036.1.2函數調用1046.2類型聲明1046.2.1類型1046.2.2類型轉換1066.3函數參數1066.3.1形參與實參1066.3.2參數的默認值1076.3.3名稱參數1086.3.4可變長參數1086.4函數返回值1096.5變量函數1106.6匿名函數1116.6.1匿名函數作為變量值1116.6.2用作callable類型參數的值1136.7日期時間函數1136.8實戰: 管理員子系統的各種表單1166.8.1課程表單1166.8.2選擇學期表單1186.8.3添加開課信息表單119習題6121第7章字符串處理/1257.1長度與去空1257.1.1字符串長度1257.1.2字符串去空1267.2大小寫轉換與比較1277.2.1大小寫轉換1277.2.2字符串比較1277.3子串處理1287.3.1獲取子串1287.3.2查找子串1297.3.3替換子串1307.4分隔和連接字符串1327.5格式化輸出1337.6字符串特殊處理135習題7137第8章正則表達式/1408.1字符類1408.2元字符與轉義序列1418.3選項模式與子模式1438.4量詞1448.5斷言1458.6PHP模式匹配函數1468.7實戰: 使用正則表達式1508.7.1檢測登錄數據1518.7.2檢測課程數據151習題8152第9章使用數組/1549.1創建和初始化數組1549.2操作數組元素1559.2.1訪問數組元素1559.2.2修改、添加或刪除數組元素1569.2.3在數組頭部或尾部操作元素1579.3遍歷數組1589.3.1數組指針1589.3.2使用for語句遍歷數組1599.3.3使用while語句遍歷數組1599.3.4用回調函數處理數組各元素1599.4數組排序1609.4.1sort函數1609.4.2asort和ksort函數1619.4.3降序排序1629.4.4隨機排序和反向排序1629.4.5用戶自定義排序1639.5其他數組操作1639.5.1計數與統計1639.5.2變量與數組元素的轉換1649.6實戰: 呈現數據表格1669.6.1課程信息表格1669.6.2教師信息表格1689.6.3開課信息列表169習題9171第10章面向對象編程(上)/17410.1類的定義與對象的創建17410.1.1概念17410.1.2定義類17510.1.3創建和使用對象17610.2訪問控制17810.2.1訪問修飾符17810.2.2魔術方法__get和__set17910.3構造方法與析構方法18110.3.1構造方法18110.3.2只讀型實例變量18210.3.3析構方法18210.4靜態類成員18310.4.1靜態變量與靜態方法18310.4.2類常量18410.5類的自動加載18510.6實戰: 翻頁導航欄18610.6.1定義翻頁導航欄類18610.6.2定義并注冊類自動加載函數188習題10189第11章面向對象編程(下)/19211.1子類19211.1.1定義子類19211.1.2繼承構造方法19311.1.3類類型的兼容性19411.1.4檢測類型19411.2覆蓋19611.2.1變量覆蓋19611.2.2方法覆蓋19611.2.3簽名兼容性原則19811.3抽象類和接口19911.3.1抽象類19911.3.2定義接口20111.3.3實現接口20211.4例外處理20311.4.1概述20311.4.2捕捉例外205習題11208第12章MySQL數據庫基礎/21212.1登錄MySQL服務器21212.2數據庫的創建與刪除21312.2.1創建數據庫21312.2.2選擇當前數據庫21412.2.3顯示數據庫列表21412.2.4刪除數據庫21412.3MySQL數據類型21512.3.1數值型21512.3.2日期和時間型21612.3.3字符串型21812.4表的創建與刪除22012.4.1創建表22012.4.2顯示表列表和表結構22312.4.3刪除表22412.5實戰: 創建選課管理數據庫22412.5.1創建數據庫22412.5.2創建表22512.6數據的插入、更新和刪除22712.6.1插入數據22812.6.2更新數據22912.6.3刪除數據22912.7查詢23012.7.1SELECT語句23012.7.2指定列23012.7.3選擇行23112.7.4使用謂詞23212.7.5排序查詢結果23312.7.6分組匯總23312.7.7使用子查詢23412.7.8連接查詢236習題12237第13章PHP訪問MySQL數據庫/23813.1建立與MySQL服務器的連接23813.2MySQLi錯誤報告模式23913.2.1設置報告模式23913.2.2創建連接對象時的錯誤處理24013.3訪問MySQL數據庫24113.4處理查詢結果24213.5事務管理24513.6使用預處理語句24713.6.1創建預處理語句24713.6.2執行預處理語句24813.6.3處理查詢結果25013.7實戰: 數據庫訪問應用25213.7.1定義數據庫訪問類25213.7.2驗證登錄用戶身份25213.7.3添加課程記錄25313.7.4分頁呈現數據25413.7.5構建動態選項代碼25613.7.6開課信息的獲取與維護258習題13259第14章表單與會話/26114.1表單處理26114.1.1提交表單26114.1.2獲取表單數據26214.1.3檢驗表單數據26514.2會話管理26814.2.1Cookie26814.2.2基于Cookie的會話機制27014.2.3啟動會話27014.2.4會話變量27114.3頁面跳轉與重定向27214.4實戰: 訪問請求參數27414.4.1addSchedules函數27414.4.2退出系統275習題14275第15章文件處理/27715.1常用的文件操作函數27715.1.1創建目錄與文件27715.1.2檢測目錄和文件27815.1.3讀寫文件27915.2流與文件操作28115.2.1打開與關閉文件28115.2.2向文件寫出數據28215.2.3從文件讀入數據28315.2.4移動與檢測文件指針28415.3文件上傳28515.3.1文件上傳表單28515.3.2獲取上傳文件28515.4文件下載288習題15291第16章管理員子系統總括/29316.1子系統需求概述29316.1.1用戶登錄29316.1.2瀏覽教師信息29316.1.3添加課程29316.1.4維護開課信息29516.1.5頁面和視圖29716.2頁面的抽象超類29716.2.1WebPage抽象類29716.2.2AdminPage抽象類29816.2.3TaskPage抽象類29916.2.4自動加載設置30016.3請求處理視圖關系表30016.4具體頁面類的設計和實現30216.4.1設計和實現的規則30216.4.2登錄頁面類30216.4.3瀏覽教師信息頁面類30416.4.4添加課程頁面類30616.4.5維護開課信息頁面類30916.5具體頁面類的調用312附錄A上機實驗/315A.1學生教師子系統需求概述315A.1.1登錄與注冊315A.1.2教師子系統317A.1.3學生子系統320A.2學生教師子系統主要模塊實現322A.2.1實驗1: 頁頭和頁腳322A.2.2實驗2: 動態登錄與注冊表單323A.2.3實驗3: 動態水平導航欄324A.2.4實驗4: 檢測表單數據325A.2.5實驗5: 呈現數據表格326A.2.6實驗6: 錄入成績327A.2.7實驗7: 選課328A.2.8實驗8: 文件上傳與下載應用331A.3學生教師子系統集成332A.3.1總體要求332A.3.2登錄與注冊的設計與實現333A.3.3教師子系統的設計與實現335A.3.4學生子系統的設計與實現337參考文獻/340