




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、Blog博客系統(tǒng)(后端)博客系統(tǒng)介紹 博客的概念博客,僅音譯,英文名為Blogger,為Web Log(網(wǎng)絡(luò)日志)的混成詞。博客就是以網(wǎng)絡(luò)作為載體,簡易迅速便捷地發(fā)布自己的心得,及時有效輕松地與他人進(jìn)行交流,再集豐富多彩的個性化展示于一體的綜合性平臺。很多博客都提供豐富多彩的模板等功能,這使得不同的博客各具特色。Blog是繼Email、BBS、ICQ之后出現(xiàn)的第四種網(wǎng)絡(luò)交流方式,至今已十分受大家的歡迎,是網(wǎng)絡(luò)時代的個人“讀者文摘”,是以超級鏈接為武器的網(wǎng)絡(luò)日記,是代表著新的生活方式和新的工作方式,更代表著新的學(xué)習(xí)方式。博客,通常由個人管理、不定期張貼新的文章的網(wǎng)站。博客上的文章通常根據(jù)張貼時間
2、,以倒序方式由新到舊排列。許多博客專注在特定的課題上提供評論或新聞。博客可以包含文字、圖像、音樂、視頻、鏈接等網(wǎng)絡(luò)要素內(nèi)容。博客是社會媒體網(wǎng)絡(luò)的一部分。比較著名的有新浪、網(wǎng)易等博客。博客系統(tǒng)的后臺功能 用戶注冊和登錄 用戶管理添加用戶、刪除用戶、修改用戶、顯示用戶 文章分類管理添加分類、刪除分類、修改分類、顯示分類實現(xiàn)無限級分類 文章管理添加文章、刪除文章、修改文章、顯示文章列表、文章查詢 文章評論管理顯示文章評論博客系統(tǒng)的前臺功能 文章 評論 點贊 分享 搜索 按時間分類 相關(guān)文章 友情鏈接命名空間 什么是命名空間?從廣義上來說,命名空間是一種封裝事物的方法。在很多地方都可以見到這種抽象概念
3、。例如,在操作系統(tǒng)中目錄用來將相關(guān)文件分組,對于目錄中的文件來說,它就扮演了命名空間的角色。具體舉個例子,文件 foo.txt 可以同時在目錄/home/greg 和 /home/other 中存在,但在同一個目錄中不能存在兩個 foo.txt 文件。另外,在目錄 /home/greg 外訪問 foo.txt 文件時,我們必須將目錄名以及目錄分隔符放在文件名之前得到 /home/greg/foo.txt。這個原理應(yīng)用到程序設(shè)計領(lǐng)域就是命名空間的概念。 在PHP中,命名空間用來解決在編寫類庫或應(yīng)用程序時名稱沖突的問題。PHP 命名空間提供了一種將相關(guān)的類、函數(shù)和常量組合到一起的途徑。命名空間:定
4、義命名空間 定義命名空間的要求PHP 在 5.3.0 以后的版本開始支持命名空間。雖然任意合法的PHP代碼都可以包含在命名空間中,但只有三種類型的代碼受命名空間的影響,它們是:類,函數(shù)和常量。命名空間通過關(guān)鍵字namespace來聲明。如果一個文件中包含命名空間,它必須在其它所有代碼之前聲明命名空間。命名空間必須是程序腳本的第一條語句。 另外,與PHP其它的語言特征不同,同一個命名空間可以定義在多個文件中,即允許將同一個命名空間的內(nèi)容分割存放在不同的文件中。命名空間:定義子命名空間 定義子命名空間定義子命名空間,與目錄和文件的關(guān)系很象,PHP 命名空間也允許指定層次化的命名空間的名稱。因此,命
5、名空間的名字可以使用分層次的方式定義:命名空間:同一文件定義多個命名空間 簡單組合語法(不推薦使用)提示:不建議使用這種語法在單個文件中定義多個命名空間。建議使用下面的大括號形式的語法。 大括號語法(推薦使用)提示:在實際的編程實踐中,非常不提倡在同一個文件中定義多個命名空間。這種方式的主要用于將多個 PHP 腳本合并在同一個文件中。命名空間:同一文件定義多個命名空間 定義多個命名空間和不包含在命名空間中的代碼 將全局的非命名空間中的代碼與命名空間中的代碼組合在一起,只能使用大括號形式的語法。全局代碼必須用一個不帶名稱的 namespace 語句加上大括號括起來。命名空間:使用命名空間 在文件
6、系統(tǒng)中訪問文件的三種方式在討論如何使用命名空間之前,必須了解 PHP 是如何知道要使用哪一個命名空間中的元素的??梢詫?PHP 命名空間與文件系統(tǒng)作一個簡單的類比。在文件系統(tǒng)中訪問一個文件有三種方式: 相對文件名形式如foo.txt。它會被解析為 curdir/foo.txt,其中 curdir 表示當(dāng)前目錄。因此如果當(dāng)前目錄是 /home/foo,則該文件名被解析為/home/foo/foo.txt。 相對路徑名形式如subdir/foo.txt。它會被解析為 curdir/subdir/foo.txt。 絕對路徑名形式如/main/foo.txt。它會被解析為/main/foo.txt。命
7、名空間:使用命名空間 訪問命名空間中類名的三種方式非限定名稱,或不包含前綴的類名稱,例如 $a=new foo()。如果當(dāng)前命名空間是 cur,foo 將被解析為 curfoo。如果使用 foo 的代碼是全局的,不包含在任何命名空間中的代碼,則 foo 會被解析為foo。限定名稱,或包含前綴的名稱,例如 $a = new subfoo()。如果當(dāng)前的命名空間是 cur,則 foo 會被解析為 cursubfoo。如果使用 foo 的代碼是全局的,不包含在任何命名空間中的代碼,foo 會被解析為subfoo。 完全限定名稱,或包含了全局前綴操作符的名稱,例如, $a = new curfoo()
8、。在這種情況下,foo 總是被解析為curfoo命名空間:使用命名空間 使用完全限定名稱,訪問全局的類、函數(shù)和常量注意:在命名空間中,訪問任意全局類、函數(shù)或常量,都可以使用完全限定名稱,例如 strlen() 或 Exception。命名空間:namespace關(guān)鍵字 namespace關(guān)鍵字關(guān)鍵字 namespace 可用來顯式訪問當(dāng)前命名空間或子命名空間中的元素。它等價于類中的 self 操作符。命名空間:_NAMESPACE_ 魔術(shù)常量:_NAMESPACE_常量_NAMESPACE_的值是包含當(dāng)前命名空間名稱的字符串。在全局范圍內(nèi)使用時,它表示一個空的字符串。常量 _NAMESPACE
9、_ 在動態(tài)創(chuàng)建名稱時很有用。命名空間:別名/導(dǎo)入 描述允許通過別名引用或?qū)胪獠康耐耆薅Q,是命名空間的一個重要特征。PHP 命名空間支持兩種使用別名或?qū)敕绞剑簽轭惷Q使用別名,或為命名空間名稱使用別名。注意PHP不支持導(dǎo)入函數(shù)或常量。在PHP中,別名是通過操作符 use 來實現(xiàn)的。 use語法格式命名空間:別名/導(dǎo)入 use用法舉例 一行中包含多條use語句命名空間:后備全局函數(shù)/常量 描述在一個命名空間中,當(dāng) PHP 遇到一個非限定的類、函數(shù)或常量名稱時,它使用不同的優(yōu)先策略來解析該名稱。類名稱總是解析到當(dāng)前命名空間中的名稱。因此在訪問系統(tǒng)內(nèi)部或不包含在命名空間中的類名稱時,必須使用
10、完全限定名稱。對于函數(shù)和常量來說,如果當(dāng)前命名空間中不存在該函數(shù)或常量,PHP 會退而使用全局空間中的函數(shù)或常量。命名空間:知識點補充 const和define()區(qū)別兩者都是用來定義常量的,const是一個關(guān)鍵字,define()是一個函數(shù);const在編譯時,要比define()快很多;const常用于類常量的定義,define()不能用于類常量的定義;const在類內(nèi)使用是局部常量,而在類外使用是全局常量;define()定義的總是全局常量;const不能在語法結(jié)構(gòu)中定義(if、while、switch、for等),而define()可以;const常量名稱必須是固定的,而define(
11、)定義常量名稱可以是一個表達(dá)式;const常量的值必須是一個定值,而define()常量的值可以是任何變量;const定義的常量默認(rèn)是大小寫敏感的,而define()可以通過第2個參數(shù)來指定大小寫敏感;MVC框架原理 MVC概述MVC全名是Model View Controller,是模型(model)視圖(view)控制器(controller)的縮寫,一種軟件設(shè)計典范,用一種將業(yè)務(wù)邏輯、數(shù)據(jù)、界面顯示分離的方法組織代碼。例如:開飯店,自己不生產(chǎn)食用油,而是找專門生產(chǎn)食用油的廠商;自己也不生產(chǎn)面粉,而是去找專門生產(chǎn)面粉的廠商;而面粉廠商,它也不種小麥,而去找種小麥的農(nóng)民, MVC各部分功能M
12、odel(模型)用于處理應(yīng)用程序數(shù)據(jù)邏輯的部分。通常模型對象負(fù)責(zé)在數(shù)據(jù)庫中存取數(shù)據(jù)。View(視圖)是用于處理數(shù)據(jù)顯示的部分。通常視圖是依據(jù)模型數(shù)據(jù)創(chuàng)建的。Controller(控制器)是應(yīng)用程序中處理用戶交互的部分。通??刂破髫?fù)責(zé)從視圖讀取數(shù)據(jù),控制用戶輸入,并向模型發(fā)送數(shù)據(jù)。MVC框架原理 MVC的特點MVC 分層有助于管理復(fù)雜的應(yīng)用程序,您可以在一個時間內(nèi)專門關(guān)注一個方面。MVC 分層同時也簡化了分組開發(fā)。不同的開發(fā)人員可同時開發(fā)視圖、控制器邏輯和業(yè)務(wù)邏輯。MVC框架原理 MVC原理示意圖MVC框架實例學(xué)生信息表 概述一個應(yīng)用的MVC目錄結(jié)構(gòu)的劃分;使用MVC思想實現(xiàn)學(xué)生信息的查詢、刪除
13、、記錄數(shù)功能;MVC中添加命名空間功能;命名空間實現(xiàn)類的自動加載; 簡單的目錄結(jié)構(gòu)(一個應(yīng)用)MVC框架實例學(xué)生信息表 控制器文件:StudentController.class.php 數(shù)據(jù)庫操作類文件:Db.class.phpMVC框架實例學(xué)生信息表 模型類文件:StudentModel.class.phpMVC框架實例學(xué)生信息表 入口文件index.php主要代碼博客系統(tǒng)的目錄結(jié)構(gòu)劃分 框架核心目錄結(jié)構(gòu) 前端應(yīng)用目錄結(jié)構(gòu)博客系統(tǒng)的目錄結(jié)構(gòu)劃分 后端應(yīng)用目錄結(jié)構(gòu) 靜態(tài)資源目錄結(jié)構(gòu)博客系統(tǒng)的MVC框架搭建前端應(yīng)用 配置文件:Home/Conf/Config.php博客系統(tǒng)的MVC框架搭建前端
14、應(yīng)用 前端應(yīng)用效果圖 入口文件:index.php博客系統(tǒng)的MVC框架搭建前端應(yīng)用 核心框架類文件:Frame/Libs/Frame.class.php博客系統(tǒng)的MVC框架搭建前端應(yīng)用 核心框架類文件博客系統(tǒng)的MVC框架搭建前端應(yīng)用 核心框架類文件博客系統(tǒng)的MVC框架搭建前端應(yīng)用 首頁控制器類:IndexController.class.php博客系統(tǒng)的MVC框架搭建前端應(yīng)用 首頁模型類:IndexModel.class.php博客系統(tǒng)的MVC框架搭建前端應(yīng)用 首頁列表視圖文件:Index/index.html博客系統(tǒng)的MVC框架搭建前端應(yīng)用 數(shù)據(jù)庫操作類:Frame/Libs/Db.clas
15、s.php博客系統(tǒng)的MVC框架搭建后端應(yīng)用 后端應(yīng)用效果圖 入口文件:admin.php博客系統(tǒng)的MVC框架搭建后端應(yīng)用 配置文件:Admin/Conf/Config.php博客系統(tǒng)的MVC框架搭建后端應(yīng)用 其它類文件修改控制器類文件 IndexController.class.php 的命名空間名稱;修改模型類文件 IndexModel.class.php 的命名空間名稱;博客系統(tǒng)MVC完善封裝PDO類 PDO簡介PDO是PHP數(shù)據(jù)對象(PHP Data Object)的縮寫。PDO擴展為PHP訪問數(shù)據(jù)庫定義了一個輕量級的、一致性的接口,無論使用什么數(shù)據(jù)庫,都可以通過一致的函數(shù)(方法)來執(zhí)行
16、查詢和獲取數(shù)據(jù)。有了PDO,您不必再使用mysql_*函數(shù)、mssql_*函數(shù),也不必再為它們封裝數(shù)據(jù)庫操作類,只需要使用PDO接口中的方法就可以對各種數(shù)據(jù)庫進(jìn)行操作。博客系統(tǒng)MVC完善封裝PDO類 創(chuàng)建PDO類的對象描述:創(chuàng)建一個表示數(shù)據(jù)庫連接的 PDO 對象。語法:PDO:_construct ( string $dsn , string $username , string $password , array $driver_options )參數(shù): $dsn,數(shù)據(jù)源名稱或叫做 DSN,包含了請求連接到數(shù)據(jù)庫的信息。通常,一個 DSN 由 PDO 驅(qū)動名、緊隨其后的冒號、以及具體 PDO
17、 驅(qū)動的連接語法組成。如:$dsn = “mysql:host=127.0.0.1;port=3306;dbname=db” $username,數(shù)據(jù)庫用戶名。 $password,數(shù)據(jù)庫密碼。 $driver_options,一個具體驅(qū)動的連接選項的鍵=值數(shù)組。 返回值:成功則返回一個PDO對象。 博客系統(tǒng)MVC完善封裝PDO類 PDO對象的常用方法exec(),執(zhí)行一條 SQL 語句,并返回受影響的行數(shù)query(),執(zhí)行一條SQL語句,返回一個結(jié)果集對象( PDOStatement )lastInsertId(),返回最后插入行的ID或序列值setAttribute(),設(shè)置數(shù)據(jù)庫句柄屬
18、性 PDOStatement對象的常用方法fetch(),從結(jié)果集中獲取一行數(shù)據(jù)fetchAll(),返回結(jié)果集中所有行的數(shù)組rowCount(),返回受上一個 SQL 語句影響的行數(shù) 博客系統(tǒng)MVC完善封裝PDO類 PDOException對象的常用方法getCode(),異常代碼;getLine(),獲取發(fā)生異常的代碼在文件中的行號getFile(),獲取發(fā)生異常的程序文件名稱getMessage(),獲取異常消息內(nèi)容getTrace(),獲取異常追蹤信息 異常捕獲博客系統(tǒng)MVC完善封裝PDO類 PDOWrapper類的主要代碼博客系統(tǒng)MVC完善封裝PDO類 PDOWrapper類的主要代
19、碼博客系統(tǒng)MVC完善封裝PDO類 PDOWrapper類的主要代碼博客系統(tǒng)MVC完善封裝PDO類 PDOWrapper類的主要代碼博客系統(tǒng)MVC完善封裝PDO類 PDOWrapper類的主要代碼基礎(chǔ)模型類引入PDOWrapper類 基礎(chǔ)模型類:Frame/Libs/BaseModel.class.php 首頁模型類:Home/Model/IndexModel.class.php基礎(chǔ)模型類創(chuàng)建單例模型對象方法 get_class()函數(shù)描述:返回對象的類名。語法:string get_class ( object $obj )返回:返回對象實例 obj所屬類的名字。如果 obj不是一個對象則返回
20、 FALSE。說明:如果參數(shù)為空,則返回方法據(jù)的類名,與_CLASS_一樣。如果有對象參數(shù),則返回對象所在的類名。 舉例:$className = get_class ( $obj ) get_called_class()函數(shù)描述:獲取靜態(tài)化方式調(diào)用的類名(繼承環(huán)境下為后期靜態(tài)綁定類名)語法:string get_called_class ( void )基礎(chǔ)模型類創(chuàng)建單例模型對象方法 基礎(chǔ)模型類 BaseModel 首頁控制器 IndexControllerSmarty模板引擎引入 Smarty概述Smarty是使用PHP寫出來的模板引擎,是目前業(yè)界最著名的PHP模板引擎之一。Smarty用
21、來將混在一起的HTML代碼和PHP邏輯代碼分離。簡單的講,目的就是要使PHP程序員同前端人員分離,使程序員改變程序的邏輯內(nèi)容不會影響到前端人員的頁面設(shè)計,前端人員重新修改頁面不會影響到程序的程序邏輯。 Smarty目錄結(jié)構(gòu)Smarty模板引擎引入 創(chuàng)建Smarty對象 Smarty的常用屬性$smarty-left_delimiter,修改左定界符;$smarty-right_delimiter,修改右定界符; Smarty的常用方法$smarty-setTemplateDir(),設(shè)置視圖文件目錄;$smarty-setCompileDir(),設(shè)置編譯目錄;$smarty-setCache
22、Dir(),設(shè)置緩存目錄;$smarty-setConfigDir(),設(shè)置配置文件目錄;Smarty模板引擎引入 Smarty的常用方法$smarty-assign(),向模板賦值;$smarty-display(),載入視圖文件; Smarty的保留變量$smarty.now , 當(dāng)前時間戳;$smarty.get , 獲取GET數(shù)據(jù);$smarty.post , 獲取POST數(shù)據(jù);$smarty.server , 獲取SERVER數(shù)據(jù);$smarty.session , 獲取SESSION數(shù)據(jù);$smarty.cookie , 獲取COOKIE數(shù)據(jù);$smarty.const ,獲取PH
23、P常量;Smarty模板引擎引入 foreach循環(huán)結(jié)構(gòu)語法格式1:foreach $arr as $value /foreach語法格式2:foreach $arr as $key=$value /foreach Foreach循環(huán)實例表格隔行變色Smarty模板引擎引入 創(chuàng)建自己的Smarty類,并繼承原始的Smarty類將Smarty文件夾,放置到Vendor目錄;創(chuàng)建自己的Smarty類,并繼承原始的Smarty類;定義Smarty類的命名空間;類文件路徑:FrameVendorSmarty.class.phpSmarty模板引擎引入 創(chuàng)建基礎(chǔ)控制器類 BaseController創(chuàng)建
24、基礎(chǔ)控制器類 FrameLibsBaseController.class.php定義構(gòu)造方法,初始化Smarty對象;定義初始化Smarty對象的方法Smarty模板引擎引入 測試Smarty對象是否正常能用首頁控制器繼承基礎(chǔ)控制器;在IndexController中使用Smarty對象;Smarty模板引擎引入 視圖文件視圖文件index.html中使用Smarty的foreach循環(huán);實例:刪除學(xué)生信息 需求描述在index.html視圖中,添加刪除的鏈接;在基礎(chǔ)控制器中,定義一個頁面跳轉(zhuǎn)的方法;當(dāng)刪除記錄成功時,跳轉(zhuǎn)到控制器列表頁;在首頁模型類中,定義一個刪除記錄的方法; 視圖文件 in
25、dex.html實例:刪除學(xué)生信息 基礎(chǔ)控制器 BaseController 首頁控制器 IndexController實例:刪除學(xué)生信息 首頁模型類 IndexModel博客系統(tǒng)(后臺)首頁管理 準(zhǔn)備工作將后臺首頁的視圖文件,放置到 AdminViewIndex 目錄下;將后臺圖片文件,放置到 PublicAdminImages 目錄下;將后臺CSS文件,旋轉(zhuǎn)到 PublicAdminCss 目錄下;將后臺JS文件,放置到 PublicAdminJs目錄下; 首頁控制器 IndexController博客系統(tǒng)(后臺)首頁管理 首頁控制器 IndexController 視圖文件 index.
26、html博客系統(tǒng)(后臺)首頁管理 其它視圖文件頂部框架視圖文件 top.html 中靜態(tài)資源路徑修改;左側(cè)框架視圖文件 left.html 中靜態(tài)資源路徑修改;中部框架視圖文件 center.html 中靜態(tài)資源路徑修改;主框架視圖文件 main.html 中靜態(tài)資源路徑修改;博客系統(tǒng)(后臺)用戶管理 用戶數(shù)據(jù)表(user)博客系統(tǒng)(后臺)顯示用戶列表 準(zhǔn)備工作將用戶相關(guān)的視圖文件,放置到 AdminViewUser 目錄中;修改視圖文件名為:index.html、edit.html、update.html修改視圖文件中靜態(tài)資源的路徑;修改視圖文件中相關(guān)鏈接的地址;修改后臺應(yīng)用配置文件中的數(shù)據(jù)
27、庫名稱為:blog;模型類中使用 $table 屬性代替數(shù)據(jù)表名稱;修改左側(cè)欄中用戶管理的鏈接地址:博客系統(tǒng)(后臺)顯示用戶列表 用戶控制器 UserController 用戶模型類 UserModel博客系統(tǒng)(后臺)顯示用戶列表 用戶首頁視圖 index.html博客系統(tǒng)(后臺)添加用戶 用戶控制器 UserController博客系統(tǒng)(后臺)添加用戶 用戶控制器 UserController 用戶模型類 UserModel博客系統(tǒng)(后臺)添加用戶 用戶模型類 UserModel博客系統(tǒng)(后臺)刪除用戶 用戶視圖 index.html博客系統(tǒng)(后臺)刪除用戶 用戶控制器 UserContro
28、ller 用戶模型類 UserModel博客系統(tǒng)(后臺)修改用戶 用戶控制器 UserController博客系統(tǒng)(后臺)修改用戶 用戶控制器 UserController博客系統(tǒng)(后臺)修改用戶 用戶模型類 UserModel跳轉(zhuǎn)方法的進(jìn)一步完善 需要分析將視圖文件 jump.html,復(fù)制到 AdminViewPublic 目錄下;將jump.html中的PHP變量,修改成Smarty變量;修改 Frame.class.php 中 VIEW_PATH常量的路徑,去掉控制器名稱;修改所有控制器中加載視圖文件的路徑,修改為 Index/index.html 格式跳轉(zhuǎn)方法的進(jìn)一步完善 基礎(chǔ)控制器
29、 BaseController 視圖文件 jump.html博客系統(tǒng)(后臺)用戶正則驗證 用戶視圖add.html的JS正則驗證博客系統(tǒng)(后臺)用戶正則驗證 用戶視圖edit.html的JS正則驗證博客系統(tǒng)(后臺)用戶登錄 準(zhǔn)備工作將登錄視圖文件UserLogin.html,放置到 AdminViewUser 目錄中;修改視圖文件名為:login.html修改視圖文件中靜態(tài)資源的路徑;修改視圖文件中相關(guān)鏈接的地址;博客系統(tǒng)(后臺)用戶登錄 登錄視圖文件 login.html的JS驗證博客系統(tǒng)(后臺)用戶登錄 登錄視圖文件 login.html的JS驗證博客系統(tǒng)(后臺)用戶登錄 開啟SESSIO
30、N會話修改框架核心類文件 FrameFrame.class.php修改 initCharset()方法 用戶控制器 UserController博客系統(tǒng)(后臺)用戶登錄 用戶控制器博客系統(tǒng)(后臺)用戶登錄 用戶模型類 UserModel修改原始的fetchOne()方法修改UserController中的edit()方法的條件為 “id=$id”即可。圖像處理回顧 圖像處理概述PHP不僅限于只產(chǎn)生HTML的輸出,還可以創(chuàng)建與操作多種不同格式的圖像文件。PHP提供了一些內(nèi)置的圖像處理函數(shù),也可以使用GD函數(shù)庫創(chuàng)建新圖像或處理已有的圖像。目前GD2庫支持JPEG、PNG和WBMP格式。 開啟GD2
31、圖像擴展庫描述:GD擴展用于動態(tài)創(chuàng)建圖片,使用C語言編寫,開放源代碼,現(xiàn)在的版本是2.0,所以稱為GD2。開啟GD2擴展庫:將php.ini中extension=php_gd2.dll選項前的分號去掉,重啟。圖像處理回顧 創(chuàng)建圖像的大致步驟在PHP中創(chuàng)建一個圖像,大致需要四個步驟:(1)創(chuàng)建畫布:創(chuàng)建一個畫布,以后的操作都基于此畫布操作;(2)繪制圖形:在畫布上繪制圖像輪廓或輸入文本;(3)輸出圖像:也可以另存為;(4)釋放資源:釋放圖像占用的內(nèi)存資源。圖像處理回顧 告訴瀏覽器輸出的內(nèi)容類型如果將圖像直接輸出到瀏覽器。首先,需要告訴Web瀏覽器我們輸出的是一個圖像而不是文本或HTML。通過he
32、ader()函數(shù)來指定圖像的MIME類型。header(“content-type:image/jpg”)圖像處理回顧 常用圖像函數(shù)imagecreatefrompng() /從已知圖像創(chuàng)建png圖像imagecreatefromgif() /從已知圖像創(chuàng)建gif圖像imagecreatefromjpeg() /從已知圖像創(chuàng)建jpg圖像imagecreatetruecolor() /創(chuàng)建真彩色圖像imagedestroy() /銷毀圖像imagecolorallocate() /為圖像分配顏色imagejpeg() /輸出圖像到瀏覽器或文件imagepng() /輸出圖像到瀏覽器或文件imag
33、egif() /輸出圖像到瀏覽器或文件imagefill() /區(qū)域填充顏色imagestring() /水平畫一行字符imgagettftext() /水平畫一行TTF字符圖像處理回顧 數(shù)組相關(guān)函數(shù)range() ,建立一個包含指定范圍單元的數(shù)組array_merge(),合并一個或多個數(shù)組;shuffle(),將數(shù)組打亂;array_rand(),從數(shù)組中隨機取出一個或多個單元 ;圖像驗證碼類 準(zhǔn)備工作創(chuàng)建圖像驗證碼類文件Captcha.class.php,保存到 FraneVendor目錄中;定義Cpatcha的命名空間 FrameVendor;把字體文件放入 PublicAdminIm
34、ages目錄中;圖像驗證碼類圖像驗證碼類圖像驗證碼類用戶登錄引入驗證碼類 登錄視圖文件login.html用戶登錄引入驗證碼類 用戶控制器類在loginCheck()方法,加入判斷驗證碼是否正確的代碼;博客系統(tǒng)(后臺)用戶訪問權(quán)限 基礎(chǔ)控制器 BaseController添加一個訪問權(quán)限的方法 denyAccess()判斷用戶是否登錄,如果沒有登錄,跳轉(zhuǎn)到登錄頁頁。 其它控制器的每個方法都添加用戶訪問權(quán)限用戶登錄方法login()和用戶登錄檢測方法loginCheck()不能添加。用戶管理首頁資料修改 視圖文件 top.html修改 視圖文件 main.html 修改用戶管理用戶退出 需求分析
35、修改視圖文件 top.html 中退出鏈接的地址為:?c=User&a=logout修改退出鏈接地址的 target 的值為 _top。用戶控制器,添加logout()退出用戶方法。博客系統(tǒng)(后臺)文章類別管理 準(zhǔn)備工作將分類的視圖文件,復(fù)制到 AdminViewCategory 目錄下;并修改名稱為:index.html、add.html、edit.html修改視圖文件CSS文件路徑;修改左側(cè)框架中分類的鏈接地址。博客系統(tǒng)(后臺)文章類別管理 創(chuàng)建數(shù)據(jù)表categoryid , 類別id號classname , 類別名稱orderby , 排序字段pid , 父idENGINE =
36、MyISAM , 表的存儲引擎文章類別管理添加分類 分類控制器 CategoryController文章類別管理添加分類 分類模型類 CategoryModel文章類別管理添加分類 分類模型類 CategoryModel文章類別管理添加分類 分類模型類 CategoryModel文章類別管理添加分類 str_repeat()描述:重復(fù)一個字符串語法:string str_repeat ( string $input , int $multiplier )參數(shù): $input , 待操作的字符串; $multiplier , 被重復(fù)的次數(shù),必須大于0;如果為0,則返回空字符串;返回:返回 inp
37、ut 重復(fù) multiplier 次后的結(jié)果。文章類別管理添加分類 視圖文件 add.html文章類別管理顯示分類列表 分類控制器 CategoryModel文章類別管理顯示分類列表 視圖文件 index.html文章類別管理修改分類 分類控制器 CategoryController文章類別管理修改分類 分類模型類 CategoryModel文章類別管理修改分類 視圖文件 edit.html文章類別管理刪除分類 分類控制器 CategoryController 分類模型類 CategoryModel博客系統(tǒng)(后臺)文章管理 準(zhǔn)備工作將文章的相關(guān)視圖文件,復(fù)制到 AdminViewArticle
38、 目錄下,并修改名稱;修改左框架中文章鏈接的地址;修改視圖文件相關(guān)靜態(tài)資源的路徑;修改視圖文件中相關(guān)鏈接的路徑;博客系統(tǒng)(后臺)文章管理 創(chuàng)建文章數(shù)據(jù)表 articlecategory_id:分類iduser_id:用戶idtitle:文章標(biāo)題content:文章內(nèi)容orderby:排序comment_count:評論數(shù)量top:置頂read:閱讀數(shù)praise:點贊數(shù)文章管理添加文章 文章控制器 ArticleController創(chuàng)建文章控制器ArticleController,并繼承基礎(chǔ)控制器BaseController;添加add()和insert()方法;文章管理添加文章 文章模型類 ArticleModel創(chuàng)
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 商務(wù)寫作中的語氣調(diào)整方法試題及答案
- 新能源汽車前景與技術(shù)更新試題及答案
- 家具行業(yè)新產(chǎn)品開發(fā)與設(shè)計方法案例分析試題及答案
- 力學(xué)定律與實際生活聯(lián)系試題及答案
- 控制工程基礎(chǔ)試題及答案
- 幼兒園數(shù)學(xué)考試參考試題及答案
- 現(xiàn)代土木工程技術(shù)趨勢試題及答案
- 熱機性能與效率試題及答案
- 智能網(wǎng)聯(lián)技術(shù)對新能源汽車的影響試題及答案
- 日語元音考試題及答案
- 浙江國企招聘2024溫州市公用事業(yè)發(fā)展集團有限公司招聘8人筆試參考題庫附帶答案詳解
- 研發(fā)月報工作總結(jié)
- 急性ST段抬高型心肌梗死溶栓治療專家共識2024解讀
- 服務(wù)消費券發(fā)放的精細(xì)化實施方案
- 團結(jié)協(xié)作青春展新姿
- 給幼兒園講醫(yī)療知識
- 2024年共青團入團考試題庫及答案
- 2024年《BIM技術(shù)介紹》課件
- 核心素養(yǎng)視域下小學(xué)道德與法治生活化教學(xué)策略探究
- 人教版八年級下《生命.生態(tài).安全》教案
- 有理數(shù)的加減混合運算教學(xué)設(shè)計 人教版
評論
0/150
提交評論