關(guān)于我們
書(shū)單推薦
新書(shū)推薦
|
PHP學(xué)習(xí)筆記:從入門(mén)到實(shí)戰(zhàn) 本書(shū)精煉而系統(tǒng)地講述了PHP基礎(chǔ)語(yǔ)法和基本操作,在此基礎(chǔ)上側(cè)重于PHP開(kāi)發(fā)實(shí)踐的闡述,例如PHP MVC程序設(shè)計(jì)、PHP錯(cuò)誤與異常處理、PHP操作MySQL數(shù)據(jù)庫(kù)等,旨在幫助Web開(kāi)發(fā)初級(jí)讀者系統(tǒng)快速地掌握PHP開(kāi)發(fā)技能,積累實(shí)踐開(kāi)發(fā)經(jīng)驗(yàn)。 ■ 誰(shuí)更適合Web開(kāi)發(fā) 要說(shuō)Web開(kāi)發(fā)語(yǔ)言,數(shù)不勝數(shù),CGI、PERL、RUBY所代表的腳本語(yǔ)言,PHP、Java、.NET所代表的類(lèi)C語(yǔ)言,ASP所代表的Basic語(yǔ)言等。經(jīng)過(guò)這么多年互聯(lián)網(wǎng)應(yīng)用中的大浪淘沙,當(dāng)前主流的也就屬PHP、Java、.NET三大陣營(yíng)了。 在PHP、Java、.NET這三者中,Java更適合企業(yè)級(jí)應(yīng)用(開(kāi)發(fā)成本高昂、業(yè)務(wù)邏輯復(fù)雜,比如類(lèi)似銀行系統(tǒng)的應(yīng)用等),而PHP在Web應(yīng)用前景將超越Java及.NET,一方面它們都可以跨平臺(tái)部署,另一方面PHP比起.NET更輕巧和簡(jiǎn)裝。一個(gè)PHP安裝包,加上Apache,也就幾十兆;Java更是只需JDK和APPSERVER即,一共也就一二百兆,還可以自由選擇APPSERVER。相比而言,.NET安裝包動(dòng)轍上G,且只能部署在Windows環(huán)境,需要.NET framework的支持。 為什么PHP比Java更合適Web應(yīng)用呢?一方面,Web應(yīng)用要求更豐富的客戶體驗(yàn)、更快捷的客戶響應(yīng);另一方面要求更低的開(kāi)發(fā)門(mén)檻和開(kāi)發(fā)成本。由于Java基于“萬(wàn)能”的原因而顯得龐大、臃腫,其開(kāi)發(fā)框架相對(duì)PHP增加了使用難度,其靈活性也不如PHP。PHP也有兩個(gè)不足: 一是缺乏IDE支持,無(wú)法重構(gòu)與測(cè)試。 二是處理不同數(shù)據(jù)庫(kù)的語(yǔ)句各不相同,在更換數(shù)據(jù)庫(kù)時(shí)需要修改大量的代碼(到目前為止,PHP本身仍然無(wú)法對(duì)MySQL使用事務(wù)操作,但PHP所支持的第三方PDO可以)。而Java則可以通過(guò)封裝數(shù)據(jù)庫(kù)操作來(lái)解決,PHP目前還沒(méi)有好的解決辦法。盡管如此,作為一門(mén)快速開(kāi)發(fā)語(yǔ)言,在Web開(kāi)發(fā)上,PHP還是有著相當(dāng)大的優(yōu)勢(shì)及潛力的,如果出現(xiàn)一個(gè)類(lèi)似Rails的框架并解決跨數(shù)據(jù)庫(kù)的問(wèn)題,那么更是如虎添翼。目前已經(jīng)出現(xiàn)的PHP For Rails,如 CodeIgniter(CI)、Yii、ThinkPHP(TP)等各有千秋,都很優(yōu)秀,這將是Web開(kāi)發(fā)的福音。PHP既然在Web開(kāi)發(fā)方面有其獨(dú)特的優(yōu)勢(shì),也擁有一個(gè)龐大的開(kāi)發(fā)群體,通過(guò)本書(shū)可以讓PHP的愛(ài)好者、初學(xué)者、進(jìn)階者找到適合自己的良師益友,為職業(yè)生涯打下堅(jiān)實(shí)的基礎(chǔ)。 ■ 寫(xiě)作宗旨 (1)貼近實(shí)戰(zhàn),書(shū)中提供的示例、范例、實(shí)例基本囊括了PHP 的開(kāi)發(fā)技術(shù)細(xì)節(jié)且大部分來(lái)自實(shí)踐,讀者完全可以在自己實(shí)際的開(kāi)發(fā)環(huán)境中使用。同時(shí)又不乏對(duì)基礎(chǔ)知識(shí)及實(shí)用技術(shù)的解析。 (2)既要照顧到初學(xué)者,又要滿足自學(xué)者進(jìn)階、提高的需要。本書(shū)從開(kāi)發(fā)的最基礎(chǔ)講起,然后是循序漸進(jìn)的過(guò)程。在其他章節(jié)也提供了很多實(shí)用技術(shù),PHP 掛接Oracle、PHP 緩存管理(memcache)的實(shí)現(xiàn)以及PHP 通過(guò)Sphinx 構(gòu)建自己的搜索引擎等,在此就不一一列舉了。 (3)每一個(gè)知識(shí)點(diǎn)都要給出至少一個(gè)以上的舉例且必須經(jīng)過(guò)實(shí)地測(cè)試通過(guò)后才能納入書(shū)中,實(shí)例運(yùn)行結(jié)果也要納入書(shū)中。這樣,確保書(shū)中的例子都是可行的,便于讀者自己的測(cè)試結(jié)果與書(shū)中結(jié)果對(duì)照。 ■ 讀者對(duì)象 本書(shū)力求結(jié)構(gòu)緊湊、文風(fēng)簡(jiǎn)練,對(duì)于具有較淺開(kāi)發(fā)經(jīng)驗(yàn)的入門(mén)級(jí)Web 開(kāi)發(fā)人員較有幫助,可幫助其系統(tǒng)掌握PHP 開(kāi)發(fā)技能,并對(duì)PHP 關(guān)聯(lián)技術(shù)從實(shí)踐角度進(jìn)行學(xué)習(xí)應(yīng)用,提升整體項(xiàng)目落地能力。 ■ 配套資源下載包 為了讓讀者切實(shí)學(xué)習(xí)好本書(shū),隨書(shū)提供下列配套資料。 (1)書(shū)中示例或綜合實(shí)例源代碼。下載包源代碼的代碼號(hào)與書(shū)中的代碼號(hào)是一一對(duì)應(yīng)的;這樣就省去了讀者敲寫(xiě)的麻煩,通過(guò)復(fù)制粘貼操作就可在自己的環(huán)境下執(zhí)行了。 (2)書(shū)中圖表展示案例源代碼,圖表中的數(shù)據(jù)來(lái)自數(shù)據(jù)庫(kù),因此圖表的形態(tài)變化將依賴數(shù)據(jù)庫(kù)數(shù)據(jù)的變化。也就是說(shuō)該圖表是動(dòng)態(tài)的,效果可堪比股市K 線圖。往往大多應(yīng)用都存在圖表展示的需求,如果讀者的系統(tǒng)有此需求,那通過(guò)這個(gè)案例,讀者可以借鑒其中的技術(shù)和做法并運(yùn)用于自己的系統(tǒng)中,這也是本書(shū)提供此案例的初心。 (3)本書(shū)附錄 ?? 附錄1 使用PHP 開(kāi)發(fā)圖表案例 ?? 附錄2 PHP 實(shí)用技術(shù) ?? 附錄3 Sphinx.conf 配置文件注釋 (4)PHP 對(duì)Excel 文件的各種讀寫(xiě)操作,基本囊括了人工模式下對(duì)Excel 表格的各種 操作。 ■ 致謝 寫(xiě)作和出版過(guò)程中得到了編輯老師的悉心幫助,借此向中國(guó)鐵道出版社有限公司表示 感謝! 面對(duì)當(dāng)今信息科技的日新月異,筆者也深感才疏學(xué)淺,難免有疏漏和不足的地方,敬請(qǐng)讀者朋友批評(píng)指正。 ■ 關(guān)于示例代碼運(yùn)行的說(shuō)明 示例代碼需運(yùn)行在Apache 的服務(wù)模式下,將示例代碼做成PHP 文件,其文件名形如xxxx.php,放在WWW(網(wǎng)站根目錄)下,在瀏覽器地址中輸入http://localhost/xxxx.php 即可運(yùn)行。 甘長(zhǎng)春老師畢業(yè)于北京交通大學(xué)電氣工程及自動(dòng)化專(zhuān)業(yè),目前供職于中國(guó)鐵路北京局集團(tuán)公司。自從參加工作以來(lái),先后參與了多個(gè)鐵路應(yīng)用項(xiàng)目的開(kāi)發(fā)工作,同時(shí)也與多家IT企業(yè)合作研發(fā)數(shù)據(jù)庫(kù)架構(gòu)設(shè)計(jì)及開(kāi)發(fā)項(xiàng)目。通過(guò)這些項(xiàng)目的開(kāi)發(fā),積累了一定的實(shí)踐經(jīng)驗(yàn),并從中獲取了一些數(shù)據(jù)庫(kù)開(kāi)發(fā)運(yùn)維的心得。 除此之外,自2014年起,甘長(zhǎng)春老師一直在天津大學(xué)軟件學(xué)院從事兼職教學(xué)工作,所授課程為Oracle和PHP,教學(xué)經(jīng)驗(yàn)的積累也讓他更清晰地明白了如何把一個(gè)知識(shí)點(diǎn)講解更清楚,力求引領(lǐng)讀者盡快掌握書(shū)中所講內(nèi)容。 第1章 PHP基本語(yǔ)法 1.1 PHP的優(yōu)勢(shì)與特點(diǎn) 1 1.2 PHP腳本運(yùn)行方式 2 1.3 集成化WAMP服務(wù)器的配置 3 1.3.1 WAMP環(huán)境配置 4 1.3.2 客戶端瀏覽器與服務(wù)器的互動(dòng)過(guò)程 .8 1.3.3 Apache、MySQL、PHP三者之間的關(guān)系 10 1.4 PHP語(yǔ)法所涉及的標(biāo)記 10 1.4.1 PHP的標(biāo)記風(fēng)格 .10 1.4.2 PHP與HTML混編 .12 1.4.3 PHP腳本中的分號(hào)(“;”) 14 1.4.4 空格、換行符及跳格 .14 1.4.5 PHP中的注釋規(guī)則及規(guī)范 .15 1.5 PHP數(shù)據(jù)類(lèi)型 16 1.5.1 基本數(shù)據(jù)類(lèi)型 .16 1.5.2 復(fù)合數(shù)據(jù)類(lèi)型 .21 1.5.3 特殊數(shù)據(jù)類(lèi)型 .23 【示例1-1】判斷變量是否為null空值并進(jìn)一步處理 24 1.6 PHP數(shù)據(jù)類(lèi)型轉(zhuǎn)換 24 1.6.1 基本轉(zhuǎn)換(自動(dòng)轉(zhuǎn)換) .25 1.6.2 強(qiáng)制轉(zhuǎn)換 .25 【示例1-2】 將字符串強(qiáng)制轉(zhuǎn)換為float單精度、int整型、bool布爾、數(shù)組 以及對(duì)象等數(shù)據(jù)類(lèi)型 .25 1.7 PHP常量與變量 27 1.7.1 定義常量 .27 【示例1-3】使用Define()函數(shù)定義常量DEFAULT_PATH .27 1.7.2 系統(tǒng)預(yù)定義常量 .28 1.7.3 定義變量 .28 【示例1-4】傳值賦值與引用賦值(傳址賦值)方式的差異 .29 1.7.4 變量作用域 .30 1.7.5 可變變量(嵌套變量) .31 1.8 PHP 運(yùn)算符 33 1.8.1 賦值運(yùn)算符 .33 1.8.2 算術(shù)運(yùn)算符 .33 1.8.3 比較運(yùn)算符 .34 1.8.4 邏輯運(yùn)算符 .35 1.8.5 位運(yùn)算符 .35 1.8.6 字符串連接運(yùn)算符 .36 1.8.7 錯(cuò)誤控制運(yùn)算符 .36 1.8.8 三元運(yùn)算符 36 1.8.9 運(yùn)算符的優(yōu)先級(jí) .37 1.9 PHP 流程控制語(yǔ)句 37 1.9.1 條件控制語(yǔ)句 .38 1.9.2 循環(huán)控制語(yǔ)句 .40 1.9.3 跳轉(zhuǎn)控制語(yǔ)句 .41 1.10 PHP 變量的應(yīng)用場(chǎng)景分析 43 1.10.1 可變變量與應(yīng)用場(chǎng)景 .43 1.10.2 PHP 變量引用(傳址)賦值使用場(chǎng)景分析 .46 1.10.3 PHP 外部超全局變量場(chǎng)景分析 .48 1.10.4 PHP 預(yù)定義系統(tǒng)常量場(chǎng)景分析 .51 1.10.5 PHP 變量檢測(cè)與銷(xiāo)毀(刪除) .52 【示例1-5】變量檢測(cè)與銷(xiāo)毀(刪除) .56 1.10.6 PHP 常量的定義與檢測(cè)場(chǎng)景分析 .57 1.11 本章小結(jié) 59 第2 章 PHP 數(shù)組 2.1 數(shù)組的聲明及類(lèi)型 60 2.1.1 數(shù)組的聲明 .60 【示例2-1】數(shù)組的定義、賦值及取值 .61 2.2.2 數(shù)組的類(lèi)型 .61 2.2 數(shù)組的構(gòu)造 62 【示例2-2】二維數(shù)組使用 62 2.3 數(shù)組遍歷方法 62 2.3.1 使用foreach 循環(huán)遍歷數(shù)組 .62 【示例2-3】使用foreach 遍歷數(shù)組 .63 2.3.2 使用list() 函數(shù)遍歷數(shù)組 .64 【示例2-4】使用list() 函數(shù)遍歷數(shù)組 .64 2.4 數(shù)組常用操作 64 2.4.1 統(tǒng)計(jì)數(shù)組元素個(gè)數(shù) .64 【示例2-5】使用count() 函數(shù)統(tǒng)計(jì)數(shù)組$arr1 和$arr2 的元素個(gè)數(shù) 64 2.4.2 數(shù)組與字符串的轉(zhuǎn)換 .66 【示例2-6】過(guò)濾敏感字 .66 【示例2-7】使用implode() 函數(shù)將數(shù)組轉(zhuǎn)換為字符串 .68 2.4.3 數(shù)組的查找 .68 【示例2-8】在數(shù)組中查找元素的鍵名及鍵值 .68 2.4.4 數(shù)組的排序 .69 【示例2-9】數(shù)組的升序與降序排列 .69 【示例2-10】關(guān)聯(lián)數(shù)組按鍵值及鍵名并保持鍵值對(duì)應(yīng)關(guān)系 .70 2.4.5 數(shù)組的拆分與合并 .71 【示例2-11】數(shù)組元素的取出和替換 .72 【示例2-12】?jī)蓚(gè)或兩個(gè)以上含有相同鍵與不同鍵的數(shù)組合并 .73 2.4.6 數(shù)組鍵及鍵值的判斷 .73 【示例2-13】判斷數(shù)組鍵“one”“1”“two”及“2”是否存在 .73 【示例2-14】 通過(guò)array_key_exists() 函數(shù)測(cè)試數(shù)組鍵是否存在,通過(guò)empty() 和isset() 測(cè)試數(shù)組鍵的鍵值是否存在 .74 2.4.7 數(shù)組元素的檢索 .75 【示例2-15】使用in_array() 函數(shù)在數(shù)組array 中搜索指定的value 值 75 【示例2-16】 使用array_key_exists() 函數(shù)判斷某個(gè)數(shù)組array 中是否存在 指定的key(鍵) 76 【示例2-17】 使用array_search() 函數(shù)在數(shù)組中查找一個(gè)鍵值,若找到則 返回鍵名;如果未找到則返回false 76 2.4.8 數(shù)組元素的過(guò)濾 .76 【示例2-18】 使用array_filter() 函數(shù)過(guò)濾空數(shù)組,所有為false 的元素將會(huì)被移除 .77 【示例2-19】使用array_filter() 函數(shù)去掉多維空值,而數(shù)組的下標(biāo)沒(méi)有改變 77 【示例2-20】 使用foreach() 語(yǔ)句及unset() 函數(shù)去掉數(shù)組的空值,而數(shù)組的下標(biāo)沒(méi)有改變 .78 【示例2-21】 使用for() 語(yǔ)句及unset() 函數(shù)去掉數(shù)組的空值,而數(shù)組的下標(biāo)沒(méi)有改變 .78 2.4.9 將數(shù)組分配到符號(hào)表 .79 【示例2-22】 使用關(guān)聯(lián)數(shù)組,將鍵值”Cat””Dog”和”Horse”賦值給變量$a1、$b1 和$c1 80 【示例2-23】使用索引數(shù)組,變量名前綴為“gcc” .80 2.4.10 PHP 數(shù)組的出棧與入棧 .81 【示例2-24】 在給定一個(gè)數(shù)組的3 個(gè)元素中,移除最后一個(gè)元素(索引最大的元素)并返回這個(gè)被移除的元素值 .81 2.5 PHP 預(yù)定義數(shù)組 83 2.5.1 $_SERVER[] 數(shù)組 84 2.5.2 $GLOBALS[] 數(shù)組 .86 【示例2-25】 函數(shù)內(nèi)通過(guò)Global 聲明全局變量與$GLOBALS[] 調(diào)用外部 變量 .86 2.5.3 $_ENV[] 數(shù)組 .87 2.6 本章小結(jié) 88 第3 章 面向?qū)ο蟮某绦蜷_(kāi)發(fā) 3.1 類(lèi)和對(duì)象 89 3.1.1 類(lèi)和對(duì)象的定義 .89 3.1.2 類(lèi)的屬性解釋 .90 3.1.3 PHP 的引用變量 .91 3.1.4 類(lèi)的方法 .92 【示例3-1】 在外部訪問(wèn)內(nèi)部方法傳參(實(shí)參)個(gè)數(shù)多于設(shè)定的 參數(shù)個(gè)數(shù)(形參) .93 【示例3-2】 在外部訪問(wèn)內(nèi)部方法傳參(實(shí)參)個(gè)數(shù)多于設(shè)定的 參數(shù)個(gè)數(shù)(形參) .93 3.1.5 構(gòu)造方法 .94 【示例3-3】實(shí)例化類(lèi)時(shí)設(shè)定參數(shù)值并由構(gòu)造方法接收 .94 3.1.6 析構(gòu)函數(shù)與PHP 的垃圾回收機(jī)制 94 3.2 繼承類(lèi) 95 3.2.1 怎樣繼承一個(gè)類(lèi) .95 3.2.2 類(lèi)的屬性及方法修飾符的使用 .97 3.2.3 類(lèi)重寫(xiě) .97 3.2.4 使用parent:: 關(guān)鍵字 .99 3.2.5 類(lèi)方法重載 .100 3.3 類(lèi)特性 101 3.3.1 靜態(tài)變量和方法 .101 3.3.2 final 類(lèi)、final 方法和常量 .106 3.3.3 abstract 類(lèi)和abstract 方法 .107 3.4 接口 108 3.5 PHP 5 中的魔術(shù)方法簡(jiǎn)介 .110 3.5.1 __set 魔術(shù)方法 110 3.5.2 __get 魔術(shù)方法 .111 3.5.3 __call 魔術(shù)方法 111 3.5.4 __toString 魔術(shù)方法 .112 3.6 PHP 魔術(shù)變量、魔術(shù)方法、常規(guī)函數(shù)以及回調(diào)函數(shù)的使用 113 3.6.1 PHP 魔術(shù)變量 .113 3.6.2 PHP 魔術(shù)方法使用 .117 3.6.3 PHP 典型函數(shù)的使用 .123 3.6.4 PHP 函數(shù)檢測(cè)與回調(diào)綜合運(yùn)用 .128 3.7 本章小結(jié) 132 第4 章 PHP MVC 程序設(shè)計(jì) 4.1 MVC 三大核心部件 133 4.1.1 數(shù)據(jù)和規(guī)則:模型 .134 4.1.2 交互界面:視圖 .134 4.1.3 調(diào)用返回:控制器 .134 4.1.4 MVC 優(yōu)缺點(diǎn) .134 4.2 PHP 模板引擎Smarty 概述 135 4.2.1 什么是模板引擎 .135 4.2.2 Smarty 的優(yōu)缺點(diǎn) 136 4.3 Smarty 的部署與配置 137 4.3.1 Smarty 的部署 138 4.3.2 Smarty 的配置 139 4.3.3 實(shí)踐案例:替代模板文件中特定的Smarty 變量 .140 4.4 Smarty 的使用步驟 143 4.5 Smarty 變量 144 4.5.1 模板中輸出PHP 分配的變量 144 4.5.2 模板中輸出非PHP 分配的變量 152 4.5.3 變量調(diào)節(jié)器 .153 4.6 Smarty 流程控制 158 4.6.1 條件選擇結(jié)構(gòu)if-else 158 4.6.2 Smarty 中與數(shù)組下標(biāo)無(wú)關(guān)的foreach 循環(huán)結(jié)構(gòu) 159 4.6.3 Smarty 中與數(shù)組下標(biāo)有關(guān)的section 循環(huán)結(jié)構(gòu) .163 4.7 Smarty 的緩存處理 167 4.7.1 在Smarty 中控制緩存 .167 4.7.2 一個(gè)頁(yè)面多個(gè)緩存 .169 4.7.3 為緩存實(shí)例消除處理開(kāi)銷(xiāo) .169 4.7.4 清除緩存 .170 4.7.5 關(guān)閉局部緩存 .171 4.8 本章小結(jié) 172 第5 章 PHP 錯(cuò)誤與異常處理 5.1 PHP 的錯(cuò)誤處理機(jī)制 174 5.2 自定義錯(cuò)誤處理 176 錯(cuò)誤路徑信息 .177 路徑信息 .178 5.3 PHP 的異常處理 179 5.3.1 異常的拋出與捕獲 .179 5.3.2 基本異常(Exception)類(lèi)介紹 .181 5.3.3 自定義異常 .181 5.3.4 捕獲多個(gè)異常 .182 5.4 本章小結(jié) 183 第6 章 PHP 操作MySQL 數(shù)據(jù)庫(kù) 6.1 PHP 操作MySQL 數(shù)據(jù)庫(kù)的基本操作 .184 6.1.1 連接MySQL 服務(wù)器 187 6.1.2 選擇MySQL 數(shù)據(jù)庫(kù) 189 6.1.3 執(zhí)行SQL 語(yǔ)句 .190 6.1.4 關(guān)閉MySQL 數(shù)據(jù)庫(kù)服務(wù)器的連接 191 6.1.5 處理查詢結(jié)果集 .192 6.2 獲取數(shù)據(jù)庫(kù)信息 198 6.2.1 獲取服務(wù)器所有數(shù)據(jù)庫(kù) .198 6.2.2 獲取數(shù)據(jù)庫(kù)內(nèi)的表 .199 6.2.3 獲取數(shù)據(jù)表的字段信息 .200 6.2.4 獲取錯(cuò)誤信息 .203 6.3 實(shí)踐案例:實(shí)現(xiàn)一個(gè)留言板的簡(jiǎn)單管理 203 6.3.1 添加留言信息 .203 6.3.2 分頁(yè)顯示留言信息 .206 6.3.3 查詢單條留言詳細(xì)信息 .209 6.3.4 編輯留言信息 .210 6.3.5 刪除留言信息 .212 6.3.6 案例部分截圖 .212 6.4 PHP 獲取MySQL 數(shù)據(jù)庫(kù)存儲(chǔ)程序的輸出(out)參數(shù)值 214 6.4.1 PHP(PDO 驅(qū)動(dòng))獲取MySQL 存儲(chǔ)過(guò)程的out 參數(shù)值 215 6.4.2 PHP(PDO 驅(qū)動(dòng))獲取MySQL 數(shù)據(jù)庫(kù)存儲(chǔ)函數(shù)的返回值 216 6.4.3 PHP(mysqli 驅(qū)動(dòng))獲取MySQL 存儲(chǔ)過(guò)程的out 參數(shù)值 217 6.4.4 PHP(mysqli 驅(qū)動(dòng))獲取MySQL 存儲(chǔ)函數(shù)的返回值 .218 6.5 本章小結(jié) 219 第7 章 PHP mysqli 擴(kuò)展與PDO 驅(qū)動(dòng) 7.1 mysqli 擴(kuò)展 220 7.1.1 mysqli 簡(jiǎn)介 .220 7.1.2 使用mysqli 擴(kuò)展訪問(wèn)數(shù)據(jù)庫(kù) 221 7.1.3 PHP 通過(guò)mysqli 擴(kuò)展實(shí)現(xiàn)對(duì)MySQL 數(shù)據(jù)庫(kù)的操作 .223 7.1.4 預(yù)準(zhǔn)備語(yǔ)句 .224 7.1.5 執(zhí)行多個(gè)查詢 .226 7.2 使用PDO 訪問(wèn)數(shù)據(jù)庫(kù) 227 7.2.1 PDO 連接MySQL 數(shù)據(jù)庫(kù) .228 7.2.2 使用PDO 執(zhí)行SQL 語(yǔ)句 .229 7.2.3 PDO 對(duì)錯(cuò)誤的處理 233 7.2.4 PDO 對(duì)事務(wù)的處理 235 7.2.5 PDO 訪問(wèn)MySQL 數(shù)據(jù)庫(kù)總結(jié) .237 7.3 使用ADODB 第三方插件連接數(shù)據(jù)庫(kù) 243 7.3.1 使用ADODB 連接數(shù)據(jù)庫(kù) .243 7.3.2 使用ADODB 執(zhí)行查詢 .244 循環(huán)輸出數(shù)據(jù) .246 7.3.3 使用ADODB 執(zhí)行數(shù)據(jù)庫(kù)增、刪、改操作 .250 7.3.4 ADODB 公用變量 252 7.3.5 ADODB 中的GetMenu() 和Render() 函數(shù)使用方法 254 7.3.6 ADODB 訪問(wèn)MySQL 數(shù)據(jù)庫(kù)總結(jié) .257 7.4 PHP 與Oracle 數(shù)據(jù)庫(kù) .263 7.4.1 PHP 通過(guò)PDO 驅(qū)動(dòng)連接Oracle 數(shù)據(jù)庫(kù) 263 7.4.2 PHP 獲取Oracle 數(shù)據(jù)庫(kù)存儲(chǔ)程序返回值 277 7.5 本章小結(jié) 280 第8 章 PHP 與XML 之間的互動(dòng) 8.1 XML 語(yǔ)法 282 8.1.1 XML 文檔結(jié)構(gòu) .282 8.1.2 使用PHP 創(chuàng)建XML 文檔 .283 8.2 使用PHP 的SimpleXML 創(chuàng)建和解析XML .284 8.2.1 使用SimpleXML 把非來(lái)自數(shù)據(jù)庫(kù)的信息生成XML 文檔及解析 285 8.2.2 使用SimpleXML 把來(lái)自數(shù)據(jù)庫(kù)的信息生成XML 文檔及解析 287 8.3 使用PHP 的DOMDocument 創(chuàng)建XML 和解析XML 292 8.3.1 使用DOMDocument 生成XML .292 8.3.2 使用XMLReader 解析XML 為數(shù)組并輸出 294 8.4 XML 的應(yīng)用——RSS .295 8.4.1 為什么使用RSS .296 8.4.2 RSS 2.0 中的頻道 .296 8.4.3 RSS 2.0 中的項(xiàng) .297 8.4.4 使用PHP 實(shí)現(xiàn)訂閱 298 8.4.5 實(shí)踐案例:使用PHP 動(dòng)態(tài)生成RSS 2.0 XML 300 8.4.6 實(shí)踐案例:PHP 通過(guò)RSS 類(lèi)動(dòng)態(tài)生成RSS 2.0 XML 304 8.5 本章小結(jié) 315 第9 章 PHP 的輔助技術(shù) 9.1 PHP 代碼優(yōu)化技術(shù) 316 9.1.1 Zend OPcache 316 9.1.2 啟用頁(yè)面壓縮技術(shù) .317 9.2 圖像處理技術(shù) 320 9.2.1 開(kāi)啟GD 庫(kù) .321 9.2.2 創(chuàng)建圖像 .322 9.2.3 生成圖像驗(yàn)證碼 .323 9.2.4 產(chǎn)生縮略圖 .325 9.3 PHP 調(diào)試工具Xdebug 327 9.3.1 Xdebug 安裝 .327 9.3.2 Xdebug 基本使用 .333 9.3.3 Xdebug 的特制函數(shù) .334 9.4 PHP 生成PDF 技術(shù) .335 9.4.1 PHP 通過(guò)PDFlib 生成PDF 文件 335 9.4.2 PHP 通過(guò)FPDF 生成PDF 文件 336 9.4.3 PHP 通過(guò)MPDF 生成PDF 文件 345 9.5 PHP 生成Excel 技術(shù) .356 9.5.1 PHPExcel 類(lèi)庫(kù) 356 9.5.2 PHP 讀/ 寫(xiě)csv 文件364 【示例9-16】輸出為下載csv 文件364 【示例9-17】直接生成csv 文件 365 【示例9-18】csv 文件的讀取和寫(xiě)入,完全通過(guò)數(shù)組的方式操作 .366 9.6 PHP MemCache 緩存管理技術(shù).367 9.6.1 memcache 概述368 9.6.2 WAMP 環(huán)境——Apache/2.4.37(Win64) php/7.3.1 Memcache 的安裝.368 9.6.3 PHP 緩存管理案例(摘自一個(gè)應(yīng)用系統(tǒng))381 9.7 本章小結(jié)385 第10 章 PHP 操作中文分詞 10.1 PHP 操作中文分詞應(yīng)用場(chǎng)景386 10.2 PHP 的中文分詞(切詞)工具387 10.3 MySQL 自身支持的全文檢索.390 【示例10-1】通過(guò)MySQL 自身提供的MATCH() 函數(shù)實(shí)現(xiàn)全文檢索391 10.4 PHP Sphinx 中文全文檢索391 10.4.1 Sphinx 簡(jiǎn)介391 10.4.2 Sphinx for windows 下載392 10.4.3 Sphinx 的配置393 10.4.4 運(yùn)行Sphinx398 10.4.5 Sphinx 全文搜索結(jié)果匹配模式及搜索語(yǔ)法400 10.4.6 PHP 調(diào)用Sphinx402 10.4.7 Sphinx 連接Oracle 的sphinx.conf 配置實(shí)例413 10.4.8 Sphinx/searchd 命令參考419 10.4.9 Sphinx/indexer.exe 及searchd.exe 命令總結(jié) 421 10.5 PHP Sphinx 索引的即時(shí)更新422 10.5.1 sphinx 增量索引設(shè)置的說(shuō)明.422 10.5.2 sphinx 增量索引示例 422 10.5.3 關(guān)于索引合并的一些建議427 10.6 PHP Sphinx 分布式索引427 10.6.1 Sphinx 分布式索引原理.427 10.6.2 Sphinx 分布式索引配置428 10.7 PHP Sphinx 實(shí)時(shí)索引.429 10.8 實(shí)踐案例:PHP + PHPANALYSIS + Sphinx 實(shí)現(xiàn)中文全文檢索435
你還可能感興趣
我要評(píng)論
|