第一篇:怎樣快速學(xué)好PHP技術(shù) PHP學(xué)習(xí)方法總結(jié)
怎樣快速學(xué)好PHP技術(shù) PHP學(xué)習(xí)方法總結(jié)
來源:扣丁學(xué)堂
怎樣快速學(xué)好PHP技術(shù)?我想這應(yīng)該是大多數(shù)參加PHP培訓(xùn)學(xué)習(xí)PHP的同學(xué)比較關(guān)心和想要知道的問題,今天扣丁學(xué)堂小編就給大家簡單談?wù)勗鯓涌焖賹W(xué)好PHP技術(shù),告訴大家一些PHP學(xué)習(xí)方法。
扣丁學(xué)堂PHP工程師大??偨Y(jié)了以下幾點(diǎn),供大家學(xué)習(xí)參考:
第一、抱著良好的心態(tài)去學(xué)習(xí)
學(xué)習(xí)PHP一定要保持一個(gè)良好的心態(tài),切忌懷疑自己的學(xué)習(xí)方向和成果。
還記得你敲出的第一條命令在一個(gè)“黑漆漆”的窗口中顯示了什么樣的神跡嗎?學(xué)習(xí)PHP絕非是件易事,但請不要懷疑你自己的方向和成果,你所付出的終將會給豐厚的回報(bào)。如果一件事情結(jié)束的時(shí)候你還能保持像你開始那樣心態(tài)的話,那么你將立于不敗之地。
第二、合適的學(xué)習(xí)方式和教材
很多初學(xué)者比較傾向于找一些視頻教程來看,其實(shí)這真是極好的,但是你得找一些質(zhì)量高、口碑好,最好是一些大型培訓(xùn)機(jī)構(gòu)內(nèi)部的視頻。但是請不要一直依賴視頻,畢竟視頻除了沒有互動之外,跟上課一樣的,所以看視頻的唯一缺點(diǎn)就是學(xué)習(xí)成本的增加,這個(gè)成本包括了取得費(fèi)用和時(shí)間成本,所以在你什么都不懂而且看書看“懵逼”的時(shí)候先看看視頻吧。當(dāng)你把PHP基礎(chǔ)命令用熟練了,理解簡單的服務(wù)原理并可以獨(dú)立配置簡單的服務(wù)的時(shí)候,那么就去看書吧!看書可以大大的節(jié)省你的時(shí)間、金錢成本。
當(dāng)然蘿卜白菜各有所愛,選擇什么樣的學(xué)習(xí)方式和學(xué)習(xí)教材對每個(gè)人來說都是不一樣的,就跟談戀愛一樣,沒有最好只有最合適。
第三、不要抵觸“無聊”的英語
基本上你學(xué)習(xí)PHP或者使用PHP一段時(shí)間以后,你會發(fā)現(xiàn)與其說是學(xué)習(xí)PHP操作系統(tǒng),還不如說是學(xué)習(xí)如何閱讀英文呢。隨著知識的深入,你可能會需要經(jīng)常去搜索一些資料,當(dāng)度娘不能滿足你的時(shí)候,你還得去找另一個(gè)男人---谷哥。你跟谷哥講中文當(dāng)然是可以的,但是有時(shí)候谷哥會用中文含蓄的跟你表達(dá)“我這里資料還是太少了,你去我哥哥(英文谷哥)那問問?”試問此時(shí)如果你不會用英文描述你的問題,或者看不懂外國牛人的回答,那時(shí)候真的有種想拿豆腐撞死自己的沖動。而且說實(shí)話,語言的學(xué)習(xí)是非常有意思的一件事情。
第四、找到樂趣以及伙伴
能從枯燥的學(xué)習(xí)中找到屬于自己的樂趣,這是一件很幸福的事情。當(dāng)然所謂的樂趣也是相對于個(gè)人而言的,有些人把嘗試新東西當(dāng)做樂趣,每一次成功輸出所產(chǎn)生的小小的成就感也可以是樂趣,當(dāng)然還有一些惡趣味不是嗎?
找到小伙伴也是一件很重要的事情,什么?“那些高手都不理我”。親,我推薦你先檢查自己問問題的態(tài)度。OK,自己的態(tài)度沒問題之后,那么你可以懷疑那些高手是否名副其實(shí),真正的高手永遠(yuǎn)樂于分享并且伴著強(qiáng)烈的“開源精神”。當(dāng)然有時(shí)候那些大神僅僅會拋出一句“方向”性的回答,但有時(shí)候這種答案才是真正優(yōu)秀的答案,會幫你理清前進(jìn)道路上的很多岔口。
第五、多動手實(shí)踐
這一段其實(shí)真的沒必要多說,所謂熟能生巧,多動手,多練,總歸會熟練的,要知道學(xué)好PHP絕非一朝一夕之事,時(shí)間、知識的積累一定可以將你推上頂峰。
希望以上的幾點(diǎn)能幫助到初入PHP行業(yè)的童鞋,且學(xué)且珍惜,要知道堅(jiān)持才是恒理,所以一旦選擇決定之后,一定要堅(jiān)定不移的學(xué)習(xí)下去,那么終會有所收獲。
如果你是一個(gè)踏實(shí)肯干并且比較細(xì)心的人,做一定會讓你獲得物質(zhì)和精神上的滿足,實(shí)現(xiàn)自己的價(jià)值。趕快加入扣丁學(xué)堂教育PHP工程師培訓(xùn)班,PHP工程師及開發(fā)課程由總監(jiān)全程面授教學(xué),大牛領(lǐng)銜主講,還有大量的PHP視頻教程供學(xué)員觀看學(xué)習(xí),喜歡就趕快報(bào)名加入吧。
第二篇:快速學(xué)習(xí)php
Php參考手冊介紹
html css 試題
試題1: 請編寫如下一個(gè)html頁面
試題2: 請使用(div+css)盒子經(jīng)典布局編寫如下界面
試題3: 請使用div+css 盒子布局模式編寫sohu首頁面布局
javascript試題
試題1:
請按下面內(nèi)容編寫一個(gè)頁面,點(diǎn)頁面里的“全選”時(shí),能選中或清除上面的所有水果。選擇你喜歡的水果:
□蘋果
□桔子
□香蕉
□葡萄
□桃子
□全選/全不選
試題2: 編寫一個(gè)簡單顯示和隱藏效果如圖所示:
試題3:
請使用javascript相關(guān)函數(shù)對一個(gè)url【http://004km.cn
(2)PHP函數(shù)
PHP函數(shù)的基本介紹、如何自定義函數(shù)、PHP頁面調(diào)用函數(shù)、require()、require_once()、include()和include_once()的區(qū)別、從內(nèi)存分析PHP函數(shù)調(diào)用過程、函數(shù)使用需要注意的細(xì)節(jié)、函數(shù)值傳遞和引用傳遞的區(qū)別。
函數(shù)是我們PHP編程最重要的一個(gè)知識點(diǎn),也是進(jìn)行模塊化編程的基礎(chǔ),掌握好函數(shù)可以提高代碼的復(fù)用性、可讀性和可維護(hù)性。
(3)數(shù)組、排序和查找
數(shù)組的基本概念、數(shù)組的引用方式、數(shù)組引用陷阱、與PHP數(shù)組相關(guān)的函數(shù)(count、is_array、print_r、explode等)遍歷數(shù)組的三種方式、刪除數(shù)組元素和數(shù)組運(yùn)算符、數(shù)組使用細(xì)節(jié)總結(jié)、內(nèi)部排序法和外部排序法介紹、冒泡排序和快速排序、選擇排序和插入排序、順序查找和二分查找、二維數(shù)組介紹和使用。
依據(jù)我的經(jīng)驗(yàn),我們?nèi)フ夜ぷ鞯臅r(shí)候,一定會一道關(guān)于排序和查詢的題,最常見的問題是: 請你寫出冒泡排序法,并使用二分查找來查找一個(gè)數(shù)。在項(xiàng)目開發(fā)中,數(shù)組是銜接變量和函數(shù)的重要數(shù)據(jù)類型,在MVC開發(fā)中,往往需在控制器中將數(shù)組分配給視圖去顯示,在算法中,數(shù)組也是變化最為靈活的。
(4)面向?qū)ο缶幊?/p>
面向?qū)ο缶幊袒靖拍?、類和對象的關(guān)系、如何定義類、成員屬性(變量)、如何創(chuàng)建對象實(shí)例及如何訪問對象屬性、對象在內(nèi)存中存在的形式、棧、堆、全局區(qū)、常量區(qū)和代碼區(qū)的關(guān)系、成員方法(函數(shù))及使用細(xì)節(jié)、構(gòu)造方法(函數(shù))、默認(rèn)構(gòu)造方法(函數(shù))、this的基本概念和使用、析構(gòu)方法(函數(shù))、PHP的對象垃圾回收器、靜態(tài)變量(類變量)的概念和使用、靜態(tài)方法(類方法)的概念和使用、面向?qū)ο缶幊痰娜筇卣鹘榻B、面向?qū)ο缶幊?封裝、面向?qū)ο缶幊?繼承、面向?qū)ο缶幊?多態(tài)、訪問控制修飾符(public、protected、private)、方法重載(overload)、方法重寫(override)、方法重載(overload)和方法重寫(override)的比較、PHP魔術(shù)函數(shù)(__set __get __construct __destruct __call等)和魔術(shù)常量(__LINE__ , __FILE__ ,__FUNCTION__等)、抽象類(abstract class)的概念和使用接口(interface)的概念和使用、接口編程和繼承的區(qū)別、關(guān)鍵字final的使用、常量關(guān)鍵字const 的作用和使用注意事項(xiàng)、面向?qū)ο缶幊讨畯?qiáng)大的反射機(jī)制、面向?qū)ο缶幊讨畡討B(tài)代理。
面向?qū)ο缶幊桃呀?jīng)成為PHP編程的主流,面向?qū)ο缶幊套尦绦蜃兊酶訌?qiáng)大和靈活,更利于項(xiàng)目的開發(fā)和維護(hù)。關(guān)于面向?qū)ο缶幊?在 傳智播客 php視頻教程 61講-78講,看看什么才是真正的PHP面向?qū)ο笏枷?,什么是真正的OOP。
(5)錯誤處理和異常處理
錯誤處理的基本概念、PHP處理錯誤的三種方式介紹、使用die()進(jìn)程錯誤處理、自定義錯誤和錯誤觸發(fā)器、錯誤日志、錯誤級別介紹、PHP異常處理的基本介紹、PHP異常處理(try throw catch)、自定義異常、如何設(shè)置頂級異常處理器、異常使用的規(guī)則。
在編寫php web 應(yīng)用程序時(shí),錯誤處理是一個(gè)重要的部分。如果您的代碼缺少錯誤檢測編碼,那么程序看上去很不專業(yè),也為安全風(fēng)險(xiǎn)敞開了大門。所以大家需要清楚在PHP編程中如何對錯誤和異常進(jìn)行有效的處理,從而保證程序的安全和健壯。
(6)預(yù)定義超全局?jǐn)?shù)組
預(yù)定義超全局?jǐn)?shù)組-基本概念、$_GET、$_POST、$_REQUEST、$_SERVER、$_ENV、$_FILES、$_COOKIE、$_SESSION、$GLOBALS、$_GET 使用陷阱(sql注入和中文亂碼問題)(7)cookie和session 什么是會話、cookie的基本概念、cookie的curd操作、cookie重要的api介紹、cookie運(yùn)行原理圖解、cookie的實(shí)際運(yùn)用(顯示用戶上次訪問時(shí)間、顯示用戶上次瀏覽過的商品、)、cookie使用的注意事項(xiàng)、session數(shù)據(jù)存放的位置和形式、session的curd操作、session運(yùn)行原理圖解、session實(shí)際案例-在線購物車、IE禁用Cookie后的session處理方案、session防止用戶非法入侵、session配合驗(yàn)證碼使用、php.ini 中關(guān)于cookie和session配置說明(重點(diǎn),難點(diǎn))、自定義會話處理器、Session和Cookie的區(qū)別。
Cookie(小甜餅)是客戶端技術(shù),服務(wù)器把每個(gè)用戶的數(shù)據(jù)以cookie的形式 寫給用戶各自的瀏覽器。當(dāng)用戶使用瀏覽器再去訪問服務(wù)器中的web資源時(shí),就會帶著各自的數(shù)據(jù)去。
Session是服務(wù)器端技術(shù),利用這個(gè)技術(shù),服務(wù)器在運(yùn)行時(shí)可以為每一個(gè)用 戶的瀏覽器創(chuàng)建一個(gè)其獨(dú)享的session文件,當(dāng)用戶再去訪問服務(wù)器中的其它web資源時(shí),可以從用戶各自的session 中取出數(shù)據(jù)為用戶服務(wù)。Session和Cookie是最重要的用戶行為跟蹤技術(shù),尤其是電商,sns項(xiàng)目中運(yùn)用廣泛,因此是我們學(xué)習(xí)的重點(diǎn)和難點(diǎn),也是面試筆試的重點(diǎn)。關(guān)于cookie和session大家可以參考傳智播客 php視頻教程 114-121講
(8)PHP文件編程
文件及文件編程是什么、文件流的基本概念、文件的操作方式、PHP文件編程函數(shù)匯總介紹、最常用的13個(gè)文件函數(shù)、使用文件完成網(wǎng)站計(jì)數(shù)器、文件上傳下載操作-mini版音樂共享網(wǎng)、無限級文件掃描器。
文件最主要的作用就是保存數(shù)據(jù),它既可以保存一張圖片,也可以保存視頻 ,聲音...,本章節(jié)要求同學(xué)們掌握文件的各種操作和上傳下載,動態(tài)創(chuàng)建和刪除目錄,文件和無限級掃描文件等,掌握好這些知識點(diǎn)對我們項(xiàng)目開發(fā)非常重要。
(9)PHP繪圖技術(shù)
php繪圖坐標(biāo)系、繪圖步驟說明、繪圖快速入門、繪圖最常用的函數(shù)、繪圖技術(shù)的實(shí)際運(yùn)用—人口分布餅狀統(tǒng)計(jì)圖、專業(yè)的報(bào)表開發(fā)--JpGraph、JpGraph的安裝和配置、JpGraph實(shí)際應(yīng)用-網(wǎng)民支持情況統(tǒng)計(jì)圖、JpGraph中文亂碼處理。
如果你使用過財(cái)務(wù)軟件,那你一定看見過各種對財(cái)務(wù)數(shù)據(jù)進(jìn)行統(tǒng)計(jì)和分析 的圖表,可能是表格,也可能是餅狀圖、柱狀圖、曲線圖..,簡單的說,就是使用圖表動態(tài)顯示數(shù)據(jù)。而這些圖表的顯 示都要使用到PHP的繪圖技術(shù),繪圖技術(shù)要求熟練的使用PHP的繪圖函數(shù)完成項(xiàng)目的需求。能開發(fā)一些統(tǒng)計(jì)圖,非常有實(shí)用價(jià)值。比如:
推薦學(xué)習(xí)傳智播客 php視頻教程
下載地址 http://php.itcast.cn
如何檢驗(yàn)自己的學(xué)習(xí)效果,看看下面的一些面試題 , 看看能完成多少? 如果能正確完成80%,說明這個(gè)階段學(xué)到還不錯。
練習(xí)1: 簡述echo(),print(),print_r()的區(qū)別?
練習(xí)2: 說出PHP的超級全局變量數(shù)組,共九種
練習(xí)3: 如何在一個(gè)php函數(shù)中使用具有全局屬性的變量,說出兩種方式
練習(xí)4: 三個(gè)小題: 4.1.跳水比賽,8個(gè)評委打分。運(yùn)動員的成績是8個(gè)成績?nèi)〉粢粋€(gè)最高分,去掉一個(gè)最低分,剩下的6個(gè)分?jǐn)?shù)的平均分就是最后得分。使用一維數(shù)組實(shí)現(xiàn)打分功能。
4.2.請把打最高分的評委和最低分的評委找出來。4.3.找出最佳評委和最差評委。最佳評委就是打分和最后得分最接近的評委。最差評委就是打分和最后得分相差最大的。
練習(xí)5: include和require都能把另外一個(gè)文件包含到當(dāng)前文件中,他們有什么區(qū)別?Include和include_once又有什么區(qū)別?
練習(xí)6: 寫出一個(gè)能創(chuàng)建多級目錄的PHP函數(shù)
練習(xí)7: 寫出一個(gè)函數(shù),能遞歸列出某個(gè)目錄下的所有文件夾和文件名.練習(xí)8: 在防止SQL注入的時(shí)候,通、會把單引號、雙引號等轉(zhuǎn)義,需要用到哪個(gè)函數(shù) 練習(xí)9: 寫出插入排序法和快速排序法代碼
練習(xí)10: 二分查找的原理是什么? 請寫出二分查找函數(shù)
練習(xí)11: 寫出php的public、protected、private三種訪問控制模式的區(qū)別 練習(xí)12: 請寫出一個(gè)完整的嚴(yán)謹(jǐn)?shù)膯卫J?/p>
練習(xí)13: __set 和 __get 魔術(shù)函數(shù)是做什么的,在什么時(shí)候被觸發(fā) 練習(xí)14: 如何防止對象克隆, 對象克隆會復(fù)制 static屬性嗎? 練習(xí)15: 說說strip_tags的作用和用法?
練習(xí)16: 如果需要原樣輸出用戶輸入的內(nèi)容,在數(shù)據(jù)入庫前,要用哪個(gè)函數(shù)處理? 練習(xí)17: 如何控制多個(gè)進(jìn)程去并發(fā)刪除,插入和更新數(shù)據(jù)庫的某張表? 練習(xí)18: PHP的安全模式和非安全模式的區(qū)別
(轉(zhuǎn)載請注明 傳智播客php學(xué)院-韓順平http://php.itcast.cn)
當(dāng)然,有些學(xué)員還給我寫信說這樣一個(gè)問題,如何去檢驗(yàn)第一階段: PHP前端網(wǎng)頁開發(fā)基礎(chǔ),學(xué)習(xí)情況, 學(xué)習(xí)到怎樣的水平,再學(xué)習(xí)下一個(gè)階段比較好, 大家可以做一下下面的測試題,如果你能將下面的題都完成,說明你已經(jīng)有一定基礎(chǔ),可以學(xué)習(xí)下一個(gè)階段:(注意:需要獨(dú)立完成)
html css 試題
試題1:
請編寫如下一個(gè)html頁面
試題2:
請使用(div+css)盒子經(jīng)典布局編寫如下界面
試題3:
請使用div+css 盒子布局模式編寫sohu首頁面布局
javascript試題
試題1:
請按下面內(nèi)容編寫一個(gè)頁面,點(diǎn)頁面里的“全選”時(shí),能選中或清除上面的所有水果。選擇你喜歡的水果:
□蘋果
□桔子
□香蕉
□葡萄
□桃子
□全選/全不選
試題2: 編寫一個(gè)簡單顯示和隱藏效果如圖所示:
試題3:
請使用javascript相關(guān)函數(shù)對一個(gè)url 【http://004km.cn、163.com 等)
練習(xí)5:計(jì)算一個(gè)js整數(shù)數(shù)組的所有元素的和。
練習(xí)6:計(jì)算一個(gè)字符串 , 比如 “abcde中國,你好hello,12345”, 中含有多少個(gè)中文字,多少個(gè)字母,多少個(gè)數(shù)字?
練習(xí)7:將一個(gè)js字符串?dāng)?shù)組的元素的順序進(jìn)行反轉(zhuǎn)。(“3”,“a”,“8”,“haha”)轉(zhuǎn)換為(“haha”,“8”,“a”,“3”)。提示:第i個(gè)和第length-i-1個(gè)進(jìn)行交換。不能使用js的reverse()函數(shù)。
好,現(xiàn)在我們談?wù)劦诙€(gè)階段應(yīng)該學(xué)習(xí)什么內(nèi)容,如何學(xué)習(xí)的問題。第二階段 PHP核心編程
(1)PHP基本語法加強(qiáng) Apache--directory配置段、一個(gè)IP和多個(gè)域名綁定的兩種方式、HTTP協(xié)議入門介紹、Apache邏輯組件介紹、Apache生命周期、PHP運(yùn)行之時(shí)序圖、PHP數(shù)據(jù)類型加強(qiáng)、PHP各種運(yùn)算符加強(qiáng)、PHP三大流程控制加強(qiáng)、位運(yùn)算(按位與、按位或、按位異或、按位非、位左移、位右移)、二進(jìn)制(原碼、反碼、補(bǔ)碼)、PHP版本在線貸款計(jì)算器。
這里,我想說明一下: PHP基礎(chǔ)語法看似簡單,但是也不可大意,有些PHP程序員工作了2年,對PHP運(yùn)行的原理都不清楚,對Apache的一些重要調(diào)優(yōu)配置也不了解,這樣的程序員,在公司是不行的,很難得到提升。所以就一直是一個(gè)編碼工人,薪資也上不去。
比如面試中經(jīng)常問到: PHP中一個(gè)整數(shù)的范圍是多少, 小數(shù)的能表示的范圍是多少? 再比如如何在Apache中配置一個(gè)404錯誤頁面,如何給一個(gè)主機(jī)配置一個(gè)域名,具體怎樣操作?這樣一些基礎(chǔ)的問題都必須在這個(gè)階段搞定。推薦大家看 傳智播客php視頻教程 23講-45講 ,有詳細(xì)到位的講解。
(2)PHP函數(shù)
PHP函數(shù)的基本介紹、如何自定義函數(shù)、PHP頁面調(diào)用函數(shù)、require()、require_once()、include()和include_once()的區(qū)別、從內(nèi)存分析PHP函數(shù)調(diào)用過程、函數(shù)使用需要注意的細(xì)節(jié)、函數(shù)值傳遞和引用傳遞的區(qū)別。
函數(shù)是我們PHP編程最重要的一個(gè)知識點(diǎn),也是進(jìn)行模塊化編程的基礎(chǔ),掌握好函數(shù)可以提高代碼的復(fù)用性、可讀性和可維護(hù)性。
(3)數(shù)組、排序和查找 數(shù)組的基本概念、數(shù)組的引用方式、數(shù)組引用陷阱、與PHP數(shù)組相關(guān)的函數(shù)(count、is_array、print_r、explode等)遍歷數(shù)組的三種方式、刪除數(shù)組元素和數(shù)組運(yùn)算符、數(shù)組使用細(xì)節(jié)總結(jié)、內(nèi)部排序法和外部排序法介紹、冒泡排序和快速排序、選擇排序和插入排序、順序查找和二分查找、二維數(shù)組介紹和使用。依據(jù)我的經(jīng)驗(yàn),我們?nèi)フ夜ぷ鞯臅r(shí)候,一定會一道關(guān)于排序和查詢的題,最常見的問題是: 請你寫出冒泡排序法,并使用二分查找來查找一個(gè)數(shù)。在項(xiàng)目開發(fā)中,數(shù)組是銜接變量和函數(shù)的重要數(shù)據(jù)類型,在MVC開發(fā)中,往往需在控制器中將數(shù)組分配給視圖去顯示,在算法中,數(shù)組也是變化最為靈活的。
(4)面向?qū)ο缶幊?/p>
面向?qū)ο缶幊袒靖拍睢㈩惡蛯ο蟮年P(guān)系、如何定義類、成員屬性(變量)、如何創(chuàng)建對象實(shí)例及如何訪問對象屬性、對象在內(nèi)存中存在的形式、棧、堆、全局區(qū)、常量區(qū)和代碼區(qū)的關(guān)系、成員方法(函數(shù))及使用細(xì)節(jié)、構(gòu)造方法(函數(shù))、默認(rèn)構(gòu)造方法(函數(shù))、this的基本概念和使用、析構(gòu)方法(函數(shù))、PHP的對象垃圾回收器、靜態(tài)變量(類變量)的概念和使用、靜態(tài)方法(類方法)的概念和使用、面向?qū)ο缶幊痰娜筇卣鹘榻B、面向?qū)ο缶幊?封裝、面向?qū)ο缶幊?繼承、面向?qū)ο缶幊?多態(tài)、訪問控制修飾符(public、protected、private)、方法重載(overload)、方法重寫(override)、方法重載(overload)和方法重寫(override)的比較、PHP魔術(shù)函數(shù)(__set __get __construct __destruct __call等)和魔術(shù)常量(__LINE__ , __FILE__ ,__FUNCTION__等)、抽象類(abstract class)的概念和使用接口(interface)的概念和使用、接口編程和繼承的區(qū)別、關(guān)鍵字final的使用、常量關(guān)鍵字const 的作用和使用注意事項(xiàng)、面向?qū)ο缶幊讨畯?qiáng)大的反射機(jī)制、面向?qū)ο缶幊讨畡討B(tài)代理。
面向?qū)ο缶幊桃呀?jīng)成為PHP編程的主流,面向?qū)ο缶幊套尦绦蜃兊酶訌?qiáng)大和靈活,更利于項(xiàng)目的開發(fā)和維護(hù)。關(guān)于面向?qū)ο缶幊?在 傳智播客 php視頻教程 61講-78講,看看什么才是真正的PHP面向?qū)ο笏枷耄裁词钦嬲腛OP。
(5)錯誤處理和異常處理
錯誤處理的基本概念、PHP處理錯誤的三種方式介紹、使用die()進(jìn)程錯誤處理、自定義錯誤和錯誤觸發(fā)器、錯誤日志、錯誤級別介紹、PHP異常處理的基本介紹、PHP異常處理(try throw catch)、自定義異常、如何設(shè)置頂級異常處理器、異常使用的規(guī)則。
在編寫php web 應(yīng)用程序時(shí),錯誤處理是一個(gè)重要的部分。如果您的代碼缺少錯誤檢測編碼,那么程序看上去很不專業(yè),也為安全風(fēng)險(xiǎn)敞開了大門。所以大家需要清楚在PHP編程中如何對錯誤和異常進(jìn)行有效的處理,從而保證程序的安全和健壯。
(6)預(yù)定義超全局?jǐn)?shù)組
預(yù)定義超全局?jǐn)?shù)組-基本概念、$_GET、$_POST、$_REQUEST、$_SERVER、$_ENV、$_FILES、$_COOKIE、$_SESSION、$GLOBALS、$_GET 使用陷阱(sql注入和中文亂碼問題)
(7)cookie和session 什么是會話、cookie的基本概念、cookie的curd操作、cookie重要的api介紹、cookie運(yùn)行原理圖解、cookie的實(shí)際運(yùn)用(顯示用戶上次訪問時(shí)間、顯示用戶上次瀏覽過的商品、)、cookie使用的注意事項(xiàng)、session數(shù)據(jù)存放的位置和形式、session的curd操作、session運(yùn)行原理圖解、session實(shí)際案例-在線購物車、IE禁用Cookie后的session處理方案、session防止用戶非法入侵、session配合驗(yàn)證碼使用、php.ini 中關(guān)于cookie和session配置說明(重點(diǎn),難點(diǎn))、自定義會話處理器、Session和Cookie的區(qū)別。
Cookie(小甜餅)是客戶端技術(shù),服務(wù)器把每個(gè)用戶的數(shù)據(jù)以cookie的形式 寫給用戶各自的瀏覽器。當(dāng)用戶使用瀏覽器再去訪問服務(wù)器中的web資源時(shí),就會帶著各自的數(shù)據(jù)去。Session是服務(wù)器端技術(shù),利用這個(gè)技術(shù),服務(wù)器在運(yùn)行時(shí)可以為每一個(gè)用 戶的瀏覽器創(chuàng)建一個(gè)其獨(dú)享的session文件,當(dāng)用戶再去訪問服務(wù)器中的其它web資源時(shí),可以從用戶各自的session 中取出數(shù)據(jù)為用戶服務(wù)。Session和Cookie是最重要的用戶行為跟蹤技術(shù),尤其是電商,sns項(xiàng)目中運(yùn)用廣泛,因此是我們學(xué)習(xí)的重點(diǎn)和難點(diǎn),也是面試筆試的重點(diǎn)。關(guān)于cookie和session大家可以參考傳智播客 php視頻教程 114-121講
(8)PHP文件編程
文件及文件編程是什么、文件流的基本概念、文件的操作方式、PHP文件編程函數(shù)匯總介紹、最常用的13個(gè)文件函數(shù)、使用文件完成網(wǎng)站計(jì)數(shù)器、文件上傳下載操作-mini版音樂共享網(wǎng)、無限級文件掃描器。
文件最主要的作用就是保存數(shù)據(jù),它既可以保存一張圖片,也可以保存視頻 ,聲音...,本章節(jié)要求同學(xué)們掌握文件的各種操作和上傳下載,動態(tài)創(chuàng)建和刪除目錄,文件和無限級掃描文件等,掌握好這些知識點(diǎn)對我們項(xiàng)目開發(fā)非常重要。
(9)PHP繪圖技術(shù)
php繪圖坐標(biāo)系、繪圖步驟說明、繪圖快速入門、繪圖最常用的函數(shù)、繪圖技術(shù)的實(shí)際運(yùn)用—人口分布餅狀統(tǒng)計(jì)圖、專業(yè)的報(bào)表開發(fā)--JpGraph、JpGraph的安裝和配置、JpGraph實(shí)際應(yīng)用-網(wǎng)民支持情況統(tǒng)計(jì)圖、JpGraph中文亂碼處理。如果你使用過財(cái)務(wù)軟件,那你一定看見過各種對財(cái)務(wù)數(shù)據(jù)進(jìn)行統(tǒng)計(jì)和分析 的圖表,可能是表格,也可能是餅狀圖、柱狀圖、曲線圖..,簡單的說,就是使用圖表動態(tài)顯示數(shù)據(jù)。而這些圖表的顯 示都要使用到PHP的繪圖技術(shù),繪圖技術(shù)要求熟練的使用PHP的繪圖函數(shù)完成項(xiàng)目的需求。能開發(fā)一些統(tǒng)計(jì)圖,非常有實(shí)用價(jià)值。比如:
如何檢驗(yàn)自己的學(xué)習(xí)效果,看看下面的一些面試題 , 看看能完成多少? 如果能正確完成80%,說明這個(gè)階段學(xué)到還不錯。
練習(xí)1: 簡述echo(),print(),print_r()的區(qū)別?
練習(xí)2: 說出PHP的超級全局變量數(shù)組,共九種
練習(xí)3: 如何在一個(gè)php函數(shù)中使用具有全局屬性的變量,說出兩種方式
練習(xí)4: 三個(gè)小題: 4.1.跳水比賽,8個(gè)評委打分。運(yùn)動員的成績是8個(gè)成績?nèi)〉粢粋€(gè)最高分,去掉一個(gè)最低分,剩下的6個(gè)分?jǐn)?shù)的平均分就是最后得分。使用一維數(shù)組實(shí)現(xiàn)打分功能。4.2.請把打最高分的評委和最低分的評委找出來。
4.3.找出最佳評委和最差評委。最佳評委就是打分和最后得分最接近的評委。最差評委就是打分和最后得分相差最大的。
練習(xí)5: include和require都能把另外一個(gè)文件包含到當(dāng)前文件中,他們有什么區(qū)別?Include和include_once又有什么區(qū)別?
練習(xí)6: 寫出一個(gè)能創(chuàng)建多級目錄的PHP函數(shù)
練習(xí)7: 寫出一個(gè)函數(shù),能遞歸列出某個(gè)目錄下的所有文件夾和文件名.練習(xí)8: 在防止SQL注入的時(shí)候,通、會把單引號、雙引號等轉(zhuǎn)義,需要用到哪個(gè)函數(shù)
練習(xí)9: 寫出插入排序法和快速排序法代碼
練習(xí)10: 二分查找的原理是什么? 請寫出二分查找函數(shù)
練習(xí)11: 寫出php的public、protected、private三種訪問控制模式的區(qū)別
練習(xí)12: 請寫出一個(gè)完整的嚴(yán)謹(jǐn)?shù)膯卫J?/p>
練習(xí)13: __set 和 __get 魔術(shù)函數(shù)是做什么的,在什么時(shí)候被觸發(fā)
練習(xí)14: 如何防止對象克隆, 對象克隆會復(fù)制 static屬性嗎?
練習(xí)15: 說說strip_tags的作用和用法?
練習(xí)16: 如果需要原樣輸出用戶輸入的內(nèi)容,在數(shù)據(jù)入庫前,要用哪個(gè)函數(shù)處理?
練習(xí)17: 如何控制多個(gè)進(jìn)程去并發(fā)刪除,插入和更新數(shù)據(jù)庫的某張表?
練習(xí)18: PHP的安全模式和非安全模式的區(qū)別
第三篇:開發(fā)技術(shù)(PHP)測試題
1、簡述靜態(tài)網(wǎng)頁和動態(tài)網(wǎng)頁的區(qū)別,從文件擴(kuò)展名、使用技術(shù)、表現(xiàn)形式、執(zhí)行位置等進(jìn)行闡述
答案:
2、簡述如何搭建PHP程序的環(huán)境
答案:
3、簡述PHP語言中,流程控制的分類,及幾種代表語句。
答案:
4、簡述表單提交過程中,get和post方式的區(qū)別
答案:
5、簡述session機(jī)制的原理
答案:
6、如何在php程序中啟動session
答案:
7、代碼如下
$arr=array(“I”,“am”,“a”,“student”);
$whole=implode(_,$arr);
echo $whole;
代碼輸出的結(jié)果是:
答案:
8、代碼如下
$color=imagecolorallocate($img,0,0,255);
代碼實(shí)現(xiàn)的功能:
答案:
9、代碼如下:
echo “今天是 ”.date(Y年n月j日);
$w=date(w);
$week=array(星期日,星期一,星期二,星期三,星期四,星期五,星期六);
echo $week[$w];
代碼實(shí)現(xiàn)的功能:
輸出今天的日期和是周幾
輸出的內(nèi)容是(按考試的日期來輸出即可):
2021/12/21 星期二
答案:
10、代碼如下:
$pageno=isset($_GET[pageno])?$_GET[pageno]:1;
代碼實(shí)現(xiàn)的功能:
答案:
11、php的源碼是
A、開放的
B、封閉的C、需購買的D、完全不可見的答案: A12、靜態(tài)網(wǎng)頁的執(zhí)行在瀏覽器端完成,動態(tài)網(wǎng)頁的執(zhí)行在服務(wù)器端完成答案: 正確
13、動態(tài)頁面中不可以出現(xiàn)html、css和javaScript的代碼
答案: 錯誤
14、服務(wù)器收到客戶發(fā)出的靜態(tài)頁面請求之后,只把該頁面文件發(fā)送給客戶瀏覽器來執(zhí)行
答案: 錯誤
15、存放在任意文件夾中的php文件都可以通過localhost/…方式來執(zhí)行
答案: 錯誤
16、搭建PHP環(huán)境時(shí)要先安裝php,再安裝apache服務(wù)器
答案: 錯誤
17、apache服務(wù)默認(rèn)占用80號端口,不可更改
答案: 錯誤
18、下面哪項(xiàng)不屬于靜態(tài)網(wǎng)頁設(shè)計(jì)中使用的核心技術(shù)
A、HTML
B、DreamWeaver
C、CSS
D、Javascript
答案: B19、下面哪組中列舉的技術(shù)都屬于動態(tài)網(wǎng)頁設(shè)計(jì)時(shí)使用的核心技術(shù)
A、ASP、JSP、SSP
B、JSP、XHTML、PHP
C、JSP、PHP、ASP
D、PHP、ASP、Javascript
答案: C20、動態(tài)網(wǎng)頁與靜態(tài)網(wǎng)頁的本質(zhì)區(qū)別是
A、靜態(tài)頁面運(yùn)行后能夠查看所有的源代碼,動態(tài)頁面中動態(tài)部分源代碼則無法查看
B、靜態(tài)網(wǎng)頁任何時(shí)候運(yùn)行內(nèi)容都相同,動態(tài)頁面則不然
C、動態(tài)頁面是在服務(wù)器端執(zhí)行的,而靜態(tài)頁面是在瀏覽器端執(zhí)行的D、靜態(tài)頁面中可以包含各種小動畫,動態(tài)頁面不可以
答案: C21、下面各種說法中錯誤的是
A、在動態(tài)頁面中可以包含大量的靜態(tài)代碼
B、使用靜態(tài)頁面技術(shù)可以實(shí)現(xiàn)動態(tài)變化的時(shí)鐘效果
C、動態(tài)頁面的運(yùn)行過程通常會包含在服務(wù)器端的執(zhí)行過程和在瀏覽器端的執(zhí)行過程兩個(gè)階段
D、瀏覽器請求執(zhí)行一個(gè)靜態(tài)頁面時(shí),服務(wù)器先把頁面文件執(zhí)行完畢,然后將結(jié)果傳遞到瀏覽器端顯示
答案: D22、下面關(guān)于PHP的說法錯誤的是
A、PHP是一種服務(wù)器端的腳本
B、PHP程序可以在任意環(huán)境中執(zhí)行
C、在PHP文件中可以包含任意的HTML代碼和樣式的應(yīng)用
D、使用PHP可以實(shí)現(xiàn)注冊、登錄、在線投票、訪客計(jì)數(shù)等動態(tài)頁面中需要的各種功能
答案: B23、若PHP文件中包含html代碼,下面描述中正確的是
A、服務(wù)器將整個(gè)php文件發(fā)送給瀏覽器執(zhí)行
B、服務(wù)器將所有代碼執(zhí)行后將結(jié)果送給瀏覽器
C、服務(wù)器執(zhí)行html代碼后將執(zhí)行結(jié)果和php代碼一起送給瀏覽器
D、服務(wù)器執(zhí)行php代碼后,將指向結(jié)果和html代碼一起送給瀏覽器
答案: D24、下面哪組是PHP支持的服務(wù)器環(huán)境
A、Apache和pws
B、Apache、IIS和pws
C、Apache和IIS
D、只有Apache
答案: C25、若是系統(tǒng)中已經(jīng)存在了IIS服務(wù),且占用了80端口號,則下面說法正確的是
A、Apache能夠成功安裝,但是無法啟用,只需要修改端口號即可啟用
B、Apache無法完成安裝過程
C、Apache能夠成功安裝,且能正常啟用
D、以上說法都不正確
答案: A26、下面關(guān)于Apache主目錄說法錯誤的是
A、安裝Apache之后,必須要將頁面文件放在其主目錄下才能正常運(yùn)行
B、安裝Apache之后,系統(tǒng)會給其指定默認(rèn)的主目錄
C、Apache的主目錄不能隨意修改
D、用戶可以根據(jù)需要修改Apache主目錄
答案: C27、搭建apache web服務(wù)器(使用phpstduy)之后,默認(rèn)情況下運(yùn)行文件時(shí)的localhost對應(yīng)哪個(gè)文件夾?
A、apache
B、htdocs
C、,需要使用哪個(gè)代碼實(shí)現(xiàn)
A、onsubmit=“window.open(zhuce.html);”
B、onsubmit=“window.open(zhuce.html);”
C、onclick=“window.open(zhuce.html);”
D、onclick=“window.open(zhuce.html);”
答案: C185、要在表單文本框中顯示數(shù)組元素$row[title]的值,則代碼是:
答案:
echo $row[title];;
解析:
186、判斷表單文本框age的數(shù)據(jù)是否提交到服務(wù)器端的方法是______
A、if($_POST[age]==)
B、if(isset($_POST[age]))
C、if($_POST[age]=)
D、if(isset($_FILES[age]))
答案: A187、代碼if(document.getElementById(jieshao).value=)用于判斷id為jieshao的表單元素值是否為空
答案: 錯誤
188、使用函數(shù)move_uploaded_file()時(shí)只需提供一個(gè)參數(shù)
答案: 錯誤
189、表單中有文件域元素時(shí),下面哪個(gè)說法錯誤________
A、中method屬性取值可以是get
B、中enctype屬性取值為multipart/form-data
C、文件域元素需要設(shè)置name屬性
D、可以有多個(gè)文件域元素
答案: A190、存在表單文件域元素fname,系統(tǒng)數(shù)組$_FILES[fname]中的內(nèi)容不包括___
A、上傳文件的名稱
B、上傳文件的類型
C、上傳文件的大小
D、上傳文件的內(nèi)容
答案: D191、進(jìn)行文件上傳時(shí),文件相關(guān)信息存放在系統(tǒng)數(shù)組____中
答案: $_FILES;
192、以下系統(tǒng)數(shù)組中可以使用兩個(gè)下標(biāo)的是___________
A、$_POST
B、$_GET
C、$_FILES
D、$_SESSION
答案: C193、函數(shù)move_uploaded_file()只需要一個(gè)參數(shù)()
答案: 錯誤
194、若存在文件域元素名稱為f1,$_FILES[‘F1’]是一個(gè)數(shù)組()
答案: 正確
195、進(jìn)行文件上傳時(shí),需要在form標(biāo)記中設(shè)置屬性enctype的取值是
A、multipart/form-data
B、text/plain
C、application/x-www-form-urlencoded
D、以上都不是
答案: A196、關(guān)于函數(shù)move_uploaded_file(),下列說法錯誤的是
A、該函數(shù)需要指定兩個(gè)參數(shù)
B、第二個(gè)參數(shù)需要同時(shí)指定文件存儲的位置和要保存文件的名稱
C、第一個(gè)參數(shù)需要指定文件的臨時(shí)存儲位置和臨時(shí)名稱
D、以上說法都是錯誤的答案: D197、關(guān)于系統(tǒng)數(shù)組$_FILES,第二個(gè)下標(biāo)不包含下面哪一項(xiàng)
A、tmpname
B、size
C、name
D、type
答案: A198、關(guān)于多文件上傳功能中,下面說法錯誤的是
A、文件域元素中必須添加multiple屬性
B、可以同時(shí)選擇不同文件夾中的文件
C、$_FILES[file1][name]是一個(gè)數(shù)組
D、文件域元素的name屬性取值必須帶有[]
答案: B199、$_FILES{“touxiang”][“type”]作用是
A、獲取上傳文件的類型
B、獲取上傳文件的大小
C、獲取上傳文件的名稱
D、獲取上傳文件的臨時(shí)存儲信息
答案: A200、完成文件上傳功能,在標(biāo)簽中使用哪個(gè)屬性設(shè)置編碼_____
A、enctype
B、name
C、ID
D、action
答案: A201、在A網(wǎng)頁上創(chuàng)建了一個(gè)Session變量:$____SESSION[“user”]=“張三”,在B網(wǎng)頁上要輸出這個(gè)Session變量的值,應(yīng)使用。
答案: echo $_SESSION[“user”];
202、在同一個(gè)網(wǎng)站的不同文件之間傳遞數(shù)據(jù)的機(jī)制是__________
A、session
B、cookie
C、application
D、post
答案: A203、下面哪個(gè)系統(tǒng)數(shù)組不用于接收表單提交的數(shù)據(jù)________
A、$_SESSION
B、$_FILES
C、$_POST
D、$_GET
答案: A204、關(guān)于session機(jī)制的描述中正確的是_____
A、用戶的session都保存在瀏覽器端
B、一旦某個(gè)頁面向session中提供了數(shù)據(jù),當(dāng)前網(wǎng)站中在該頁面之后執(zhí)行的頁面文件都可以根據(jù)需要從中獲取該數(shù)據(jù)
C、不同網(wǎng)站的頁面之間可以通過session機(jī)制來傳遞數(shù)據(jù)
D、session中存放的是所有用戶的共用數(shù)據(jù)
答案: B205、點(diǎn)擊超鏈接可以向服務(wù)器提交數(shù)據(jù)()
答案: 正確
206、鏈接打開文件count.php時(shí)使用鍵名uname提交數(shù)據(jù)“l(fā)iuhong”,超鏈接href屬性的取值為
A、href=“count.php”?uname=“l(fā)iuhong”
B、href=“count.php?uname:liuhong”
C、href=“count.php?uname=liuhong”
D、href=“count.php”?uname:“l(fā)iuhong”
答案: C207、關(guān)于session機(jī)制的描述中錯誤的是
A、服務(wù)器可通過sessionID來區(qū)分各個(gè)不同用戶
B、一旦某個(gè)頁面向session管道中提供了數(shù)據(jù),當(dāng)前網(wǎng)站中在該頁面之后執(zhí)行的頁面文件都可以根據(jù)需要從管道中獲取該數(shù)據(jù)
C、不同網(wǎng)站的頁面之間可以通過session機(jī)制來傳遞數(shù)據(jù)
D、要提供數(shù)據(jù)的頁面和要獲取數(shù)據(jù)的頁面都要啟用session
答案: C208、下面說法中錯誤的是
A、變量有生命周期
B、session有生命周期
C、session產(chǎn)生于用戶開始訪問一個(gè)網(wǎng)站時(shí)
D、一個(gè)session中可以保存多個(gè)用戶的信息
答案: D209、在PHP中,有兩個(gè)函數(shù)與cookie操作有關(guān)。其中____用來設(shè)置cookie變量內(nèi)容, ____用來讀取cookie變量內(nèi)容。
答案: setcookie;$_COOKIE;
210、能夠在同一網(wǎng)站不同頁面之間傳遞數(shù)據(jù)的機(jī)制是____,在程序代碼開始處啟用該機(jī)制時(shí)需要使用的代碼是____
答案: session;session_start();
211、Session可以在不同網(wǎng)站的頁面之間傳遞數(shù)據(jù)()
答案: 錯誤
212、mysql數(shù)據(jù)庫中查詢數(shù)據(jù)用select語句
答案: 正確
213、以下說法不正確的是
A、模糊查詢使用的關(guān)鍵字是like
B、排序查詢asc是降序,desc是升序
C、分頁查詢使用的關(guān)鍵字是limit
D、mysql如果只安裝服務(wù)不安裝界面也可以正常使用
答案: B214、在用瀏覽器查看網(wǎng)頁時(shí)出現(xiàn)404錯誤可能的原因是
A、頁面源代碼錯誤
B、文件不存在C、與數(shù)據(jù)庫連接錯誤
D、權(quán)限不足
答案: B215、安裝MySQL數(shù)據(jù)庫之后,默認(rèn)使用的是根用戶root
答案: 正確
216、卸載MySQL時(shí),說法正確的是
A、只要在控制面板中卸載軟件即可
B、在控制面板中卸載軟件后,清理完注冊表信息即可
C、先刪除系統(tǒng)盤符下的文件夾,再清理注冊表信息,最后卸載軟件
D、先在控制面板中卸載軟件,然后清理注冊表信息,最后刪除系統(tǒng)盤符下的相關(guān)文件夾
答案: D217、MySQL服務(wù)器有一個(gè)超級管理員賬號,其名稱是()
A、admin
B、root
C、sa
D、Administrator
答案: B218、mysqli中返回結(jié)果集中記錄總數(shù)的函數(shù)是()
A、fetch_row
B、fetch_assoc
C、num_rows
D、field_count
答案: C219、訪問mysql數(shù)據(jù)庫時(shí),用來選擇并打開指定數(shù)據(jù)庫的方法是_________
A、mysqli_query()
B、mysqli_connect()
C、mysqli_select_db()
D、mysqli_num_rows()
答案: C220、若是在某次訪問數(shù)據(jù)庫的操作中,需要用到如下四個(gè)函數(shù)
①mysqli_num_rows()②mysqli_select_db()、③mysqli_connet()④mysqli_query()
則使用這四個(gè)函數(shù)的順序是___________
A、①②③④
B、②③①④
C、③②④①
D、③④①②
答案: C221、PHP中選擇打開數(shù)據(jù)庫的方法是______
A、mysqli_connect()
B、mysqli_select_db()
C、mysqli_query()
D、mysqli_num_rows()
答案: B222、查詢用戶名和密碼信息是否存在時(shí),關(guān)于查詢結(jié)果記錄集$result的說法錯誤的是____
A、該記錄集中的記錄數(shù)只能是0或者1
B、該記錄集中的記錄數(shù)無法預(yù)知
C、若記錄數(shù)是0,說明用戶輸入的賬號或者密碼信息有誤
D、若記錄數(shù)是1,說明用戶輸入的賬號和密碼信息正確
答案: B223、訪問mysql數(shù)據(jù)庫時(shí),從查詢結(jié)果記錄集中獲取一條記錄的方法是
A、mysql_num_rows()
B、mysql_select_db()
C、mysql_fetch_array()
D、mysql_fetch_Array()
答案: C224、函數(shù)mysql_fetch_array()的作用是
A、獲取一個(gè)數(shù)組中的元素
B、從查詢結(jié)果記錄集中獲取一條記錄并以對象方式存儲訪問
C、從查詢結(jié)果記錄集中獲取一條記錄并以數(shù)組方式存儲訪問
D、以上說法都不正確
答案: C225、下面操作MySQL數(shù)據(jù)庫的方法中,哪個(gè)返回值可能是false
A、mysql_fetch_array()
B、mysql_select_db()
C、mysql_num_rows()
D、mysql_fetch_Array()
答案: A226、查詢數(shù)據(jù)表時(shí),限制獲取查詢結(jié)果中序號為6、7、8的記錄,需要使用的子句是
A、limit 6,8
B、limit 6,2
C、from 6 to 8
D、start 6 to 8
答案: B227、MySQL數(shù)據(jù)庫操作中,Create New Schema命令的作用是
A、創(chuàng)建數(shù)據(jù)表
B、創(chuàng)建數(shù)據(jù)表中一個(gè)列名
C、創(chuàng)建數(shù)據(jù)庫
D、以上說法都不正確
答案: C228、關(guān)于數(shù)據(jù)庫的導(dǎo)入操作,下列說法中錯誤的是
A、使用的命令是Restore
B、導(dǎo)入過程中可以更改原來數(shù)據(jù)庫的名稱
C、導(dǎo)入過程中必須要選擇忽略錯誤選項(xiàng),否則導(dǎo)入無法完成D、若安裝數(shù)據(jù)庫時(shí)選擇的字符集是GBK,則導(dǎo)入過程中,必須要選擇字符集是GBK
答案: D229、關(guān)于PHP訪問MySQL數(shù)據(jù)庫的各種方法,下列說法中正確的是
A、在使用mysql_connect()連接數(shù)據(jù)庫成功之后,就可以直接訪問數(shù)據(jù)表完成各種操作
B、mysql_num_rows()的作用是獲取查詢結(jié)果記錄集中記錄的個(gè)數(shù),其參數(shù)可以省略
C、mysql_select_db()的作用是選擇打開指定的數(shù)據(jù)庫,可以只指定一個(gè)參數(shù)
D、mysql_query()函數(shù)只能執(zhí)行查詢語句,不能執(zhí)行插入、刪除、更新語句
答案: C230、假設(shè)用戶在登錄時(shí),輸入的用戶名信息保存在變量$emailaddr中,密碼保存在變量$psd中,查詢數(shù)據(jù)表usermsg中是否存在該用戶名和密碼信息,需要定義的查詢語句是
A、select * from usermsg where emailaddr=$emailaddr or psd=$psd
B、select * from usermsg where emailaddr=$emailaddr and psd=$psd
C、select * from usermsg where emailaddr=$emailaddr and psd=$psd
D、select * from usermsg where emailaddr=$emailaddr or psd=$psd
答案: B231、查詢用戶名和密碼信息是否存在時(shí),關(guān)于查詢結(jié)果記錄集$result的說法錯誤的是
A、該記錄集中的記錄數(shù)只能是0或者1
B、該記錄集中的記錄數(shù)無法預(yù)知
C、若記錄數(shù)是0,說明用戶輸入的賬號或者密碼信息有誤
D、若記錄數(shù)是1,說明用戶輸入的賬號和密碼信息正確
答案: B232、要獲取記錄集$result中的記錄數(shù),需要使用代碼
A、count($result)
B、mysql_num_row($result)
C、mysql_nums_rows($result)
D、mysql_num_rows($result)
答案: D233、MySQL中使用Select語句查詢時(shí),要限制返回的行數(shù)可使用____子句。
答案: limit;
234、訪問mysql數(shù)據(jù)庫時(shí),從查詢結(jié)果記錄集中獲取一條記錄的方法是__________
A、mysqli_num_rows()
B、mysqli_select_db()
C、mysqli_fetch_array()
D、mysqli_query()
答案: C235、在mysql Administrator界面下,Create New Schema命令的作用是_____
A、創(chuàng)建數(shù)據(jù)庫
B、創(chuàng)建數(shù)據(jù)表中一個(gè)列名
C、創(chuàng)建數(shù)據(jù)表
D、以上說法都不正確
答案: A236、關(guān)于數(shù)據(jù)庫的導(dǎo)入操作,下列說法中錯誤的是_____
A、使用的命令是Restore
B、導(dǎo)入過程中可以更改原來數(shù)據(jù)庫的名稱
C、導(dǎo)入過程中必須要選擇忽略錯誤選項(xiàng),否則導(dǎo)入無法完成D、使用的命令是Backup
答案: D237、假設(shè)用戶在登錄時(shí),輸入的用戶名信息保存在變量$uname中,密碼保存在變量$psd中,查詢數(shù)據(jù)表user中是否存在該用戶名和密碼信息,需要定義的查詢語句是_______
A、select * from user where uname=$uname or psd=$psd
B、select * from user where uname=$uname and psd=$psd
C、select * from user where uname=$uname and psd=$psd
D、select * from user where uname=$uname or psd=$psd
答案: B238、要獲取記錄集$result中的記錄數(shù),需要使用代碼______
A、count($result)
B、mysqli_num_row($result)
C、mysqli_nums_rows($result)
D、mysqli_num_rows($result)
答案: D239、MySQL數(shù)據(jù)庫的根用戶是____
答案: root;
240、下面的程序使用mysqli內(nèi)置函數(shù)連接數(shù)據(jù)庫,并將表lyb中的記錄顯示在網(wǎng)頁中,將1234處填寫完整
241、下面的程序用來刪除記錄,當(dāng)用戶單擊“刪除”超鏈接時(shí),記錄將被刪除,將下面1234處的代碼補(bǔ)充完整
1.isset 2$_GET[“id”] 3.$id 4.$sql,$conn242、下面的程序是獲取到下面表單發(fā)送來的信息并按以下格式輸出
將下面的服務(wù)器端的程序補(bǔ)充完整,在1234處填寫合適的代碼
$user=$_POST[“user”];
$pwd=$_POST[“pwd”];
$addr=$_POST[“addr”];
echo $user.“您好,您住在”.$addr.”,您的密碼是“.$pwd;
243、1)寫一個(gè)函數(shù),函數(shù)名為Trimtit,有兩個(gè)參數(shù)$tit,$n,函數(shù)的功能是根據(jù)指定的長度截取原始字符串。
如果原始字符串$tit的長度大于指定長度$n,則返回從左端截取的字符串并加“…”
如果長度未超過指定長度,則返回原始字符串。
2)并編寫測試代碼,使用函數(shù)實(shí)現(xiàn)字符串的截取。
答案:
function Trimtit($tit,$n){if(strlen($tit)>$n){
echo ”...“.substr($tit,0,$n);
}
else
echo $tit;
}
Trimtit(”tit664848",5);
解析:
244、編寫一個(gè)函數(shù),輸入是5個(gè)分?jǐn)?shù),輸出是去掉一個(gè)最高分和去掉一個(gè)最低分后的平均分。
答案:
function num($a,$b,$c,$d,$e){
$s=array($a,$b,$c,$d,$e);
$max=0;
$min=$s[0];
$abc=0;
for($i=0;$i if($max<=$s[$i]){ $max=$s[$i]; } if($min>=$s[$i]){ $min=$s[$i]; } $abc+=$s[$i]; } $abc=($abc-$min-$max)/5; echo $abc; } num(11,22,33,44,55); 解析: 245、使用for循環(huán),完成1+2+3+4+…+100求和過程,使用變量$sum表示結(jié)果并輸出。 答案: $num=0; for($i=1;$i<=100;$i++){ $num+=$i; } echo $num; imagecreatetruecolor 輸出真彩色圖像 246、下面哪一個(gè)不是函數(shù)imagettftext()的參數(shù)_______ A、輸出字符的坐標(biāo) B、輸出字符的角度 C、字號 D、加粗輸出的字符 答案: D247、創(chuàng)建真彩色圖像,使用的函數(shù)是____ 答案: imagecreatetruecolor(); 248、代碼imagecolorallocate($img1,255,255,0)的作用是創(chuàng)建____色 答案: 黃; 249、imageline()函數(shù)能夠在畫布中畫線,需要四個(gè)參數(shù)() 答案: 錯誤 250、用于創(chuàng)建一幅真彩色圖像的函數(shù)是 A、imagecreatetruecolor() B、imagecreate() C、imagecolorallocate() D、imagefill() 答案: A251、用于為指定圖像分配顏色的函數(shù)是 A、imagecreatetruecolor() B、imagecreate() C、imagecolorallocate() D、imagefill() 答案: C252、下面哪一個(gè)不是函數(shù)imagettftext()的參數(shù) A、字號 B、輸出字符的角度 C、輸出字符的顏色 D、加粗輸出的字符 答案: D253、函數(shù)imagesetpixel()的作用是 A、在指定位置畫一條直線 B、在指定位置設(shè)置一個(gè)單一像素 C、使用指定的顏色填充指定的區(qū)域 D、新建一個(gè)基于調(diào)色板的圖像 答案: B254、若$color表示藍(lán)色,代碼imagefill($img,0,0,$color)作用是 A、設(shè)置畫布$img中坐標(biāo)0,0的點(diǎn)為藍(lán)色 B、為畫布填充藍(lán)色 C、在畫布中畫藍(lán)色直線 D、輸出畫布 答案: B255、用于為畫布分配顏色的函數(shù)是_____ A、imagefill() B、imagecreate() C、imagecolorallocate() D、imagecolor() 答案: D 一、時(shí)間和地點(diǎn): 每周四上午在F311上課。 二、課程內(nèi)容: 通過這段時(shí)間的學(xué)習(xí),我對PHP中的MySQL數(shù)據(jù)庫有了一定的理解。由于以前沒有基礎(chǔ),在老師講課的過程開始有點(diǎn)費(fèi)盡,盡量記了一些。首先學(xué)習(xí)了一些定義:MySQL是一個(gè)小型關(guān)系型數(shù)據(jù)庫管理系統(tǒng),開發(fā)者為瑞典MySQL AB公司。目前MySQL被廣泛地應(yīng)用在Internet上的中小型網(wǎng)站中。由于其體積小、速度快、總體擁有成本低,尤其是開放源碼這一特點(diǎn),許多中小型網(wǎng)站為了降低網(wǎng)站總體擁有成本而選擇了MySQL作為網(wǎng)站數(shù)據(jù)庫。 數(shù)據(jù)(Data)是對客觀事物的符號表示,如圖形符號、數(shù)字、字母等,數(shù)據(jù)是數(shù)據(jù)庫中存儲的基本對象。在日常生活中,人們直接用語言來描述事物;在計(jì)算機(jī)中,為了存儲和處理這些事物,就要將事物的特征抽象出來組成一個(gè)記錄來描述。之后,進(jìn)行數(shù)據(jù)的編寫,知道了數(shù)據(jù)庫的發(fā)展史:人工管理階段(人力手工整理存儲數(shù)據(jù))、文件系統(tǒng)階段(使用磁盤文件來存儲數(shù)據(jù))、數(shù)據(jù)庫系統(tǒng)階段、關(guān)系型數(shù)據(jù)庫、高級數(shù)據(jù)庫階段、“關(guān)系-對象”型數(shù)據(jù)庫。再然后學(xué)習(xí)了數(shù)據(jù)庫的類型: (1)純文本數(shù)據(jù)庫: 純文本數(shù)據(jù)庫是只用空格符、制表符和換行符來分割信息的文本文件。適用于小型應(yīng)用,對于大中型應(yīng)用來說它存在諸多限制: ? 只能順序訪問,不能進(jìn)行隨機(jī)訪問。? 查找數(shù)據(jù)和數(shù)據(jù)關(guān)系或多用戶同時(shí)訪問進(jìn)行寫操作時(shí)非常困難。 (2)關(guān)系數(shù)據(jù)庫: 由于純文本數(shù)據(jù)庫存在諸多局限,所以人們開始研究數(shù)據(jù)模型,設(shè)計(jì)各種類型的使用方便的數(shù)據(jù)庫。在數(shù)據(jù)庫的發(fā)展史上,最具影響的數(shù)據(jù)庫模型有:層次模型、網(wǎng)狀模型和關(guān)系模型。其中,關(guān)系模型是目前應(yīng)用最廣泛和最有發(fā)展前途的一種數(shù)據(jù)模型,其數(shù)據(jù)結(jié)構(gòu)簡單,當(dāng)前主流的數(shù)據(jù)庫系統(tǒng)幾乎都采用關(guān)系模型。數(shù)據(jù)庫管理系統(tǒng):數(shù)據(jù)庫管理系統(tǒng)(Database Management System)是一種操縱和管理數(shù)據(jù)庫的大型軟件,是用于建立、使用和維護(hù)數(shù)據(jù)庫,簡稱DBMS。它對數(shù)據(jù)庫進(jìn)行統(tǒng)一的管理和控制,以保證數(shù)據(jù)庫的安全性和完整性。 MySQl特征:性能快捷、優(yōu)化SQL語言、容易使用、多用戶支持、可移植性和開放源代碼、遵循國際標(biāo)準(zhǔn)和國際化支持、為多種編程語言提供API。 ? mysql命令:mysql命令 mysql-h host_name-u user_name –ppassword ? h:當(dāng)連接MySQL服務(wù)器不在同臺主機(jī)時(shí),填寫主機(jī)名或IP地址 ? u:登錄MySQL的用戶名 ? p:登錄MySQL的密碼 ? 注意:密碼如果寫在命令行的時(shí)候一定不能有空格。如果使用的系統(tǒng)為linux并且登陸用戶名字與MySQL的用戶名相同即可不用輸入用戶名密碼,linux默認(rèn)是以root登陸,windows默認(rèn)用戶是ODBC mysql程序常用命令:選定默認(rèn)數(shù)據(jù)庫:use dbname;顯示所有數(shù)據(jù)庫:show databases;顯示默認(rèn)數(shù)據(jù)庫中所有表:show tables;放棄正在輸入的命令:c;顯示命令清單:h;退出mysql程序:q;查看MySQL服務(wù)器狀態(tài)信息:s 接著我們講了數(shù)據(jù)庫基礎(chǔ)知識,在此課中我們了解了數(shù)據(jù)庫: 數(shù)據(jù)庫由一批數(shù)據(jù)構(gòu)成的有序集合,這些數(shù)據(jù)被分門別類地存放在一些結(jié)構(gòu)化的數(shù) 據(jù)表(table)里,而數(shù)據(jù)表之間又往往存在交叉引用的關(guān)系,這種關(guān)系使數(shù)據(jù)庫又被稱為關(guān)系型數(shù)據(jù)庫 檔案柜=數(shù)據(jù)庫 抽屜=表 文件=記錄 一、數(shù)據(jù)庫的組成以及功能 1、SQL語法組成:DML(Data Manipulation Language數(shù)據(jù)操作語言) ——查詢、插入、刪除和修改數(shù)據(jù)庫中的數(shù)據(jù); ——SELECT、INSERT、UPDATE、DELETE等; DCL(Data Control Language數(shù)據(jù)控制語言) ——用來控制存取許可、存取權(quán)限等; ——GRANT、REVOKE 等; DDL(Data Definition Language數(shù)據(jù)定義語言)——用來建立數(shù)據(jù)庫、數(shù)據(jù)庫對象和定義其列 ——CREATE TABLE、DROP TABLE、ALTER TABLE 等 功能函數(shù) ——日期函數(shù)、數(shù)學(xué)函數(shù)、字符函數(shù)、系統(tǒng)函數(shù)等 2、MysQl數(shù)據(jù)庫增刪改查: 數(shù)據(jù)庫的操作:增、刪、改、查 增 create database name、刪 drop database name、查 show databases 改 沒有修改數(shù)據(jù)庫的語句、可以修改數(shù)據(jù)庫的名字 Myisan 直接進(jìn)入mysql data文件夾進(jìn)行修改、Innodb 不可以改名,只能重建 幾個(gè)重要的數(shù)據(jù)庫: Informatio_schema 存儲數(shù)據(jù)庫的各種信息用戶信息,列表信息,字符集信息等等?.Mysql用戶權(quán)限信息 Test 僅供用戶使用的測試數(shù)據(jù)庫,可以隨意使用 Cluster 服務(wù)器數(shù)據(jù)集,不可以刪除 Phpmyadmin mysql圖形管理軟件的一種web 3、數(shù)據(jù)表的操作 Use 數(shù)據(jù)庫名; 增 create table 表名(字段名 字段類型[約束條件],字段名 字段類型[約束條件]。。) 刪 drop table 表名 改 查 show tables 4、數(shù)據(jù)類型種類: ? 數(shù)值型 分為整型和浮點(diǎn)型 ? 整型:可以由十進(jìn)制和十六進(jìn)制表示 整數(shù)由數(shù)字序列組成,如:1,100。 由十六進(jìn)制表示方法:0x且后面加1—9和A—F 的任意數(shù)字或字母,并且0x中的X不能大寫。 ? 浮點(diǎn)型: 浮點(diǎn)數(shù)由一個(gè)數(shù)字加一個(gè)小數(shù)點(diǎn)再加上一個(gè)數(shù)字組成。兩個(gè)數(shù)字序列不能同時(shí)為空。 數(shù)值列的完整性約束 (1)AUTO_INCREMENT 自動標(biāo)識列,在需要產(chǎn)生唯一標(biāo)志符號或者順序值時(shí)候,可用此屬性。值一般從1開始,每行增加1,在插入NULL到一個(gè)AUTO_INCREMENT列時(shí),MySQL會插入一個(gè)比該列中當(dāng)前最大值大1 的值,一個(gè)表中最多能有一個(gè)有此屬性的列。對于想使用此屬性的列應(yīng)該定義為NOT NULL,并定義為PRIMARY KEY 或者定義為UNIQUE鍵。 舉例: create table t(id int auto_increment not null primary key);(2)UNSIGNED 無符號,此屬性禁用負(fù)值,將數(shù)值的取值范圍從零開始。舉例: create table t(num tinyint , num2 tinyint unsigned);(3)NULL和NOT NULL 默認(rèn)為NULL,即插入值時(shí)沒有在此字段插入值時(shí)自動填NULL,如果指定了NOT NULL,則必須在插入值時(shí)在此字段添入值,不允許插入NULL值。(4)DEFAULT 可以通過此屬性來指定一個(gè)缺省值,即如果沒有在此列添加值,那么默認(rèn)添加DEFAULT后指定值。(5)ZEROFILL 前導(dǎo)零填充數(shù)值類型值以達(dá)到列的顯示寬度。 舉例: create table test2(num1 int default 1,num2 int zerofill);CHAR和VARCHAR類型: CHAR類型和VARCHAR類型長度范圍都是0~255之間的大小。他們之間的差別在于MySQL處理存儲的方式: CHAR把這個(gè)大小視為值的準(zhǔn)確大?。ㄓ每崭裉钛a(bǔ)比較短的值)。 VARCHAR類型把它視為最大值并且只使用了存儲字符串實(shí)際上需要的字節(jié)數(shù)(增加了一個(gè)額外的字節(jié)記錄長度)。因而,較短的值當(dāng)被插入一個(gè)語句為VARCHAR類型的字段時(shí),將不會用空格填補(bǔ)(然而,較長的值仍然被截短)。 5、創(chuàng)建數(shù)據(jù)庫: 建立數(shù)據(jù)庫操作: 語法:create database 數(shù)據(jù)庫名 敘述:創(chuàng)建一個(gè)具有指定名稱的數(shù)據(jù)庫。如果要創(chuàng)建的數(shù)據(jù)庫已經(jīng)存在,或者沒有創(chuàng)建它的適當(dāng)權(quán)限,則此語句失敗。例:建立一個(gè)student庫。 mysql> create database student;創(chuàng)建表:建立表操作: 語法:create table 表名(? 列名1 列類型 [<列的完整性約束>], ? 列名2 列類型 [<列的完整性約束>], ?......);敘 述:在當(dāng)前數(shù)據(jù)庫下新創(chuàng)建一個(gè)數(shù)據(jù)表。 列類型:表示該列的數(shù)據(jù)類型。例: 建立一個(gè)表school,其由兩列組成,第一列屬性為非空,并做為主鍵,并自增 ? create table school(? school_id int(10)not null auto_increment primary key, ? school_name varchar(20) ?); 6、主鍵與外鍵:數(shù)據(jù)表之間的關(guān)聯(lián)/引用關(guān)系是依靠具體的主鍵(primary key)和外鍵(foreign key)建立起來的。 (1)主鍵:幫助MySQL以最快的速度把一條特點(diǎn)的數(shù)據(jù)記錄的位置確定下來。 主鍵必須是唯一的 主鍵應(yīng)該是緊湊的,因此整數(shù)類型比較適合 主鍵 create table student(sid int not null auto_increment, name varchar(20)not null, primary key(sid));(2)外鍵:引用另外一個(gè)數(shù)據(jù)表的某條記錄。 外鍵列類型盡可能與主鍵列類型保持一致 外鍵列應(yīng)該加上NOT NULL 外鍵(自動檢查外鍵是否匹配,僅適用InnoDB) create table score(cid int not null auto_increment primary key, score int, sid int, foreign key(sid)references student(sid)); 7、刪除數(shù)據(jù)庫或表操作 ? 刪除表操作 語法:drop table [if exists] tab_name [,tab_name]...敘述:從數(shù)據(jù)庫中刪除給定的表。如果給出if exists 子句,則刪除不存在的表不會出錯。 ? 刪除數(shù)據(jù)庫操作 語法:drop database [if exists] db_name 敘述:刪除給定的數(shù)據(jù)庫。在刪除一個(gè)數(shù)據(jù)庫后,它就永遠(yuǎn)沒有了,因此要特別小心。如果給出if exists 子句,則刪除不存在的數(shù)據(jù)庫不會出錯。 更改表結(jié)構(gòu)操作: ? 語法:alter table 表名 action;? 說明:action 可以是如下語句: ? add 列名 建表語句 [first | after 列名] 可以為表添加一列,如果沒指定first或者after,則在列尾添加一列,否則在指定列添加新列 ? add primary key(列名)為表添加一個(gè)主鍵,如果主鍵已經(jīng)存在,則出現(xiàn)錯誤 ? add foreign key(列名)references 表名(列名)為表添加一個(gè)外鍵 ? alter 列名 set default 默認(rèn)值 可以更改指定列默認(rèn)值 舉例1: 向people表中添加字段address2,類型為varchar,最大長度為100 ? alter table people add address2 varchar(100); 8、插入記錄操作 ? 敘述: 如果表名后面沒寫字段名,則默認(rèn)是向所有的字段添加值,另外字符串值應(yīng)該用‘ ’或“ ”引號括起來 ? 舉例1:向people表中添加一條記錄: insert into people(name,age) values(“zhangsan”,20);多表查詢—分類 ? 連接查詢 ? 同時(shí)涉及多個(gè)表的查詢稱為連接查詢 ? 用來連接兩個(gè)表的條件稱為連接條件 ? 內(nèi)連接(INNER JOIN)? 外連接 ——左外聯(lián)結(jié)(LEFT JOIN)——右外聯(lián)結(jié)(RIGHT JOIN) 二、算數(shù)運(yùn)算符 (1)用字符串表示的數(shù)字在任何可能便于計(jì)算的地方都被自動地轉(zhuǎn)換為數(shù)字。當(dāng)執(zhí)行轉(zhuǎn)換時(shí),MySQL遵循兩個(gè)基本規(guī)則: ? 如果第一位是數(shù)字的字符串被用于一個(gè)算數(shù)運(yùn)算中,那么它被轉(zhuǎn)換為這個(gè)數(shù)字的值。? 如果一個(gè)包含字符和數(shù)字混合的字符串不能被正確的轉(zhuǎn)換為數(shù)字,那么它被轉(zhuǎn)換成0。 (2)比較運(yùn)算符 ? 比較運(yùn)算符允許我們對表達(dá)式的左邊和右邊進(jìn)行比較。一個(gè)比較運(yùn)算符的結(jié)果總是1(真),0(假),或是為NULL(不能確定)。? 比較運(yùn)算符可以用于比較數(shù)字和字符串。數(shù)字作為浮點(diǎn)值比較,而字符串以不區(qū)分大小寫的方式進(jìn)行比較(除非使用特殊的BINARY二進(jìn)制關(guān)鍵字) 在第二章中我們學(xué)習(xí)到了數(shù)據(jù)庫的連接。 1、mysql 連接: 七劍下天山 // 第一賤:連接數(shù)據(jù)庫 ? mysql_connect — 打開一個(gè)到 MySQL 服務(wù)器的連接 ? mysql_pconnect — 打開一個(gè)到 MySQL 服務(wù)器的持久連接 ? //resource mysql_connect([ string $server [, string $username [, string $password [, bool $new_link [, int $client_flags ]]]]])(在php手冊中有 ? //mysql 連接: ? // mysql_connect 非持久連接,效率較低,對資源消耗小 ? // mysql_pconnect 持久連接,效率高,消耗大量的資源 ? $link=mysql_connect('localhost:3306','root','root');? var_dump($link);// 第二賤:判斷連接是否成功 ? //第二賤:判斷連接是否成功//mysql_errno — 返回上一個(gè) MySQL 操作中的錯誤信息的數(shù)字編碼 ? //mysql_error — 返回上一個(gè) MySQL 操作產(chǎn)生的文本錯誤信息 ? //echo mysql_errno();正確返回0,錯誤返回一個(gè)正整數(shù),輸出最近一次的mysql錯誤。 // 第三賤:設(shè)置字符集 ? bool mysql_set_charset(string $charset [, resource $link_identifier ])? //mysql_set_charset — Sets the client character set ? //bool mysql_set_charset(string $charset [, resource $link_identifier ])? mysql_set_charset('utf8');// 第四賤:選擇數(shù)據(jù)庫 ? //mysql_select_db — 選擇 MySQL 數(shù)據(jù)庫 ? mysql_select_db('company11');? mysql_select_db — 選擇 MySQL 數(shù)據(jù)庫 ? 說明 ? bool mysql_select_db(string $database_name [, resource $ link_identifier ])? 成功時(shí)返回 TRUE,或者在失敗時(shí)返回 FALSE.? mysql_select_db()設(shè)定與指定的連接標(biāo)識符所關(guān)聯(lián)的服務(wù)器上的當(dāng)前激活數(shù)據(jù)庫。如果沒有指定連接標(biāo)識符,則使用上一個(gè)打開的連接。如果沒有打開的連接,本函數(shù)將無參數(shù)調(diào)用 mysql_connect()來嘗試打開一個(gè)并使用之。 // 第五賤:準(zhǔn)備并且發(fā)送sql語句 ? //$sql='select * from biao';? //mysql_query($sql)//mysql_query — 發(fā)送一條 MySQL 查詢 //resource mysql_query(string $query [, resource $link_identifier ])// 第六賤: 判斷執(zhí)行結(jié)果,或者遍歷結(jié)果集 ? //增刪改的判斷 ? $result=mysql_query($sql);(放入第五賤)? if($result && mysql_affected_rows()){ ? echo '執(zhí)行成功';? }else{ ? echo '執(zhí)行失敗,或者不存在數(shù)據(jù)';? } ? $sql=“insert into zhiyuan(name,sex,bumen)values('zhou',0,2)”;? $sql=“update zhiyuan set bumen=3 where name='小王'”;? $sql=“insert into zhiyuan(name,sex,bumen)values('小王',0,2)”;// 第七賤:萬賤歸宗 */ 之后,學(xué)習(xí)了面向?qū)ο蟆?/p> 1、面對對象技術(shù)的基本觀點(diǎn)如下: (1)客觀世界由對象組成。 (2)具有相同數(shù)據(jù)(屬性)和操作(方法)的對象可歸納成類。 (3)類可以派生出子類,子類除了繼承父類的全部特性外還可以有自己的特性(4)對象之間的聯(lián)系通過消息傳遞(可理解為方法調(diào)用)來維系。 假設(shè)m1是類Manager的一個(gè)實(shí)例(或?qū)ο?,當(dāng)外界要求把這個(gè)對象所 代表的那位經(jīng)理的級別改變?yōu)?時(shí),就應(yīng)以下面的方式向這個(gè)對象發(fā)出一條消息: ml.ChangeLevel(2)消息傳遞 PHP的WEB技術(shù)面向?qū)ο笫欠略飕F(xiàn)實(shí)對象建立的,他們也有狀態(tài)和行為。軟件對象在一個(gè) 或多個(gè)變量中維護(hù)它的狀態(tài)。變量是一個(gè)由標(biāo)識符命名的數(shù)據(jù)項(xiàng)。對象用方法實(shí)現(xiàn)它的行為。方法是與一個(gè)對象相關(guān)聯(lián)的函數(shù)(子過程)。 ? 對象有二個(gè)性質(zhì):狀態(tài)(state)和行為(behavior)。? 對象是一個(gè)封裝數(shù)據(jù)屬性和操作行為的實(shí)體.2、面向?qū)ο?/p> 將相關(guān)的變量和方法封裝進(jìn)一個(gè)簡潔的軟件組合是一種簡單而強(qiáng)大的思想,它給軟件開發(fā)人員提供了兩個(gè)主要的好處: 模塊化:一個(gè)對象的源代碼可以獨(dú)立于其他對象的源代碼進(jìn)行編寫和維護(hù)。另外,對象很容易地在系統(tǒng)中傳遞。你可以將你的自行車對象交給其他人,而它仍然會正常工作。(重構(gòu)、代碼復(fù)用) 隱藏信息:對象有一個(gè)公共接口,其他對象可以使用這個(gè)接口與它通信。對象可以維護(hù)私有的信息和方法,可以在任何時(shí)候改變這些信息和方法,而不影響依賴于它的其他對象。你不需要理解你自行車使用的變速齒輪機(jī)制就能夠使用它。即是:封裝 3、類 類是一組具有相同數(shù)據(jù)結(jié)構(gòu)和相同操作對象的集合。 在現(xiàn)實(shí)世界中,常常有相同類型的許多對象。例如,你的自行車只是世界上的許多自行車之一。用面向?qū)ο蟮男g(shù)語來說,你的自行車對象是自行車類的一個(gè)實(shí)例。自行車有一些共有的狀態(tài)(當(dāng)前的變速齒輪、當(dāng)前的步調(diào)、兩個(gè)輪子)和行為(改變變速齒輪、剎車)。但是,每輛自行車狀態(tài)獨(dú)立于其他自行車狀態(tài),也就說每輛自行車的狀態(tài)可以互不相同。 ? function jia($no1,$no2){ ? return $no1+$no2;? } ? function jian($no1,$no2){ ? return $no1-$no2;? } ? function cheng($no1,$no2){ ? return $no1*$no2;? } ? function chu($no1,$no2){ ? return $no1/$no2;? } ? function max(){ ? echo '我是最大值';? } 4、類的成員-字段(1)、聲明字段 name;?>(2)使用字段 ? 與變量不同,使用字段要使用->操作符,而不是美元符號 – $employee=new Staff();– echo $employee->name;? 當(dāng)在定義字段的類中引用字段時(shí)要使用$this關(guān)鍵字。$this表示當(dāng)前類 5、、構(gòu)造函數(shù) 構(gòu)造函數(shù)是類中的一個(gè)特殊函數(shù),當(dāng)使用 new 操作符創(chuàng)建一個(gè)類的實(shí)例時(shí),構(gòu)造函數(shù)將會自動調(diào)用。 Php5中以__construct()作為構(gòu)造函數(shù)。而php4中是以將和類名相同的函數(shù)作為構(gòu)造函數(shù)。為了兼容php5先尋找__construct(),如果找不到再尋找以類名命名的構(gòu)造函數(shù) 如果一個(gè)類沒有構(gòu)造函數(shù),則調(diào)用基類的構(gòu)造函數(shù) Class Staff { function __construct()//兩個(gè)下劃線 { echo “調(diào)用了構(gòu)造函數(shù)”;} function Staff(){ echo “調(diào)用了構(gòu)造函數(shù)2”;} } $employee=new Staff();? //構(gòu)造方法 函數(shù) ? //特點(diǎn),就是在new 的時(shí)候也就是調(diào)用這個(gè)殼的時(shí)候就進(jìn)行了調(diào)用的方法 ? //寫法:php4中只認(rèn)識一種 類名和函數(shù)名相同的話,那個(gè)函數(shù)就是使構(gòu)造方法 ? //php5中 類名和函數(shù)名相同/__construct()都是構(gòu)造方法 ? //注意:構(gòu)造方法在類中只能有一個(gè) 不要寫多個(gè) 使用PHP4的或者PHP5的兩個(gè)相同構(gòu)造方法會報(bào)重載錯誤 ? //但是如果一個(gè)PHP4的一個(gè)PHP5的構(gòu)造方法就不會報(bào)錯,但是邏輯有問題 ? //構(gòu)造方法的參數(shù)傳值,是在調(diào)用類的時(shí)候()放的就是為構(gòu)造方法準(zhǔn)備的參數(shù) //析構(gòu)方法 函數(shù) __destruct()? //特點(diǎn),析構(gòu)方法是在調(diào)用完之后,自動執(zhí)行 在接收類調(diào)用的變量改值的時(shí)候/或者頁面結(jié)束 自動啟動 ? //聲明關(guān)鍵字 [private protected public var ] 6、析構(gòu)函數(shù) (1)析構(gòu)函數(shù)會在到某個(gè)對象的所有引用都被刪除或者當(dāng)對象被顯式銷毀時(shí)執(zhí)行。腳本執(zhí)行結(jié)束時(shí),php會撤銷內(nèi)存中的所有對象,因此如果實(shí)例化時(shí)創(chuàng)建的信息都會保留到內(nèi)存中,就不需要顯式的聲明析構(gòu)函數(shù)。但是如果創(chuàng)建了不那么容易丟失的數(shù)據(jù)時(shí)(例如連接數(shù)據(jù)庫)就應(yīng)當(dāng)定制析構(gòu)函數(shù)進(jìn)行銷毀數(shù)據(jù)。Class Staff { function __construct(){ echo “調(diào)用了構(gòu)造函數(shù)”;} function __destruct(){ echo “調(diào)用了析構(gòu)函數(shù),需要釋放和銷毀的“;} } $employee=new Staff();(2)類的成員-屬性_set()__set()//兩個(gè)下劃線 $this->$propname=$propvalue; print ”ok第四篇:php課程總結(jié)
“;} } $model=new Test();$model->age=25;$model->title=”English“;echo ”
“;print ”age: “.$model->age.”
“;echo ”
“;print ”title: “.$model->title.”
“;?> 可用來驗(yàn)證某個(gè)屬性是否存在或增加新的屬性
7、控制對類的成員訪問
(1)public :在任何位置都可以讀取和修改這個(gè)成員變量或者調(diào)用這個(gè)方法。這個(gè)修飾符在外部代碼使用,由給定類中的代碼使用,或者在擴(kuò)展給定類的功能的類中使用。
(2)private : 只有這個(gè)類中的代碼才能讀取和修改私有變量或者調(diào)用私有成員函數(shù)。其他代碼、類或者擴(kuò)展這個(gè)類的功能類(子類)不能使用私有條目。
(3)protected : 外部代碼與給定類不相關(guān)的其他類不能讀取或者修改使用了關(guān)鍵字protected的成員變量,也不能調(diào)用受保護(hù)的成員函數(shù)。(4)abstract 定義抽象類
(5)final 子類方法不允許覆蓋父類方法 先了解,下一章重點(diǎn)闡述
8、靜態(tài)類成員
當(dāng)需要一些所有類對象共享的字段和方法時(shí)就需要創(chuàng)建一些靜態(tài)的字段和方法。Class Staff { public static $name=”靜態(tài)字段“;static function show(){
echo self::$name,”
“;} } echo Staff::$name,”
“;Staff::show();
9、常量
常量(const)即不會在類中改變的值,對于該類的任何實(shí)例化的對象來說 常量值在這些對象的整個(gè)生命周期中都保持不變 Class Staff { const CITY=“北京”;} echo Staff::CITY;
之后,學(xué)習(xí)了PHP正則表達(dá)式
1、正則表達(dá)式簡介
正則表達(dá)式是用于描述字符排列模式一種語法規(guī)則。它主要用于字符串的模式分割、匹配、查找及替換操作。到目前為止,我們前面所用過的精確(文本)匹配也是一種正則表達(dá)式。
在PHP中,正則表達(dá)式一般是由正規(guī)字符和一些特殊字符(類似于通配符)聯(lián)合構(gòu)成的一個(gè)文本模式的程序性描述。
在程序語言中,通常將模式表達(dá)式(即正則表達(dá)式)包含在兩個(gè)反斜線“/”之間,如“/apple/”。用戶只要把需要匹配的模式內(nèi)容放入定界之間即可。
如果使用一個(gè)沒有特殊字符的正則表達(dá)式,相當(dāng)于純文本搜索,使用strstr()函數(shù)也可達(dá)到同樣的效果。
2、^ 和 $ ”^The“: 開頭一定要有”The“字符串;”of despair$“: 結(jié)尾一定要有”of despair“ 的字符串;那么, ”^abc$“: 就是要求以abc開頭和以abc結(jié)尾的字符串,實(shí)際上是只有abc匹配
”notice“: 匹配包含notice的字符串 你可以看見如果你沒有用我們提到的兩個(gè)字符(最后一個(gè)例子),就是說 模式(正則表達(dá)式)可以出現(xiàn)在被檢驗(yàn)字符串的任何地方,你沒有把他鎖定到兩邊(開始或結(jié)束)
3、'*', '+',和 '?', * 表示出現(xiàn)0次或1次或多次 相當(dāng)于{0,}, + 表示出現(xiàn)1次或多次 相當(dāng)于{1,}, ? 表示出現(xiàn)0次或1次 相當(dāng)于{0,1}, 這里是一些例子: ”ab*“: 和ab{0,}同義,匹配以a開頭,后面可以接0個(gè)或者N個(gè)b組成的字符串(”a“, ”ab“, ”abbb“, 等);”ab+“: 和ab{1,}同義,同上條一樣,但最少要有一個(gè)b存在(”ab“, ”abbb“, 等.);”ab?“:和ab{0,1}同義,可以沒有或者只有一個(gè)b;”a?b+$“: 匹配以一個(gè)或者0個(gè)a再加上一個(gè)以上的b結(jié)尾的字符串.要點(diǎn), '*', '+',和 '?'只管它前面那個(gè)字符.4、[ ] 中括號括住的內(nèi)容只匹配一個(gè)單一的字符
”[ab]“: 匹配單個(gè)的 a 或者 b(和 ”a|b“ 一樣);”[a-d]“: 匹配'a' 到'd'的單個(gè)字符(和”a|b|c|d“ 還有 ”[abcd]“效果一樣);一般我們都用[a-zA-Z]來指定字符為一個(gè)大小寫英文 ”^[a-zA-Z]“: 匹配以大小寫字母開頭的字符串 ”[0-9]%“: 匹配含有 形如 x% 的字符串
”,[a-zA-Z0-9]$“: 匹配以逗號再加一個(gè)數(shù)字或字母結(jié)尾的字符串
5、正則表達(dá)式的語法規(guī)則
正則表達(dá)式是主要由: ? 原子(普通字符,如英文字符)? 元字符(有特殊功用的字符)? 以及模式修正字符組成。
一個(gè)正則表達(dá)式中至少包含一個(gè)原子。
6、PHP中的正則表達(dá)式函數(shù)
在PHP中有兩套正則表達(dá)式函數(shù)庫。
? 一套是由PCRE(Perl Compatible Regular Expression)庫提供的。PCRE庫使用和perl相同的語法規(guī)則實(shí)現(xiàn)了正則表達(dá)式的模式匹配,其使用以“preg_”為前綴命名的函數(shù)。
? 另一套是由POSIX(Portable Operation System interface)擴(kuò)展庫提供的。POSIX擴(kuò)展的正則表達(dá)式由POSIX 1003.2定義,一般使用以“ereg_”為前綴命名的函數(shù)。
? 兩套函數(shù)庫的功能相似,執(zhí)行效率稍有不同。一般而言,實(shí)現(xiàn)相同的功能,使用PCRE庫的效率略占優(yōu)勢。
7、、正則表達(dá)式的拆分
1split()和spliti()函數(shù)原型:
? array split(string $pattern,string $string[,int $limit])本函數(shù)返回一個(gè)字符串?dāng)?shù)組,每個(gè)單元為$string經(jīng)正則表達(dá)式$pattern作為邊界分割出的子串。如果設(shè)定了$limit,則返回的數(shù)組最多包含$limit個(gè)單元。而其中最后一個(gè)單元包含了$string中剩余的所有部分。Spliti是split的忽略大小版本。
之后,學(xué)習(xí)了文件系統(tǒng)處理。
open()打開文件或者URL $file=fopen('1.txt','r');//只讀模式打開 //r 只能讀取不能寫入
//r+ 增強(qiáng)的讀寫模式 表示以只讀模式打開,但是仍然可以進(jìn)行部分的寫入操作 //w 寫模式 打開文件的時(shí)候,原有內(nèi)容會被清空 如果文件不存在就新建一個(gè)文件,再打開
//w+ 增強(qiáng)的讀寫模式
//a 追加模式(寫)不會清空原有文件而是在源文件的基礎(chǔ)上進(jìn)行累加 不存在也可以新建
//a+ 增強(qiáng)的追加模式(讀寫)/x異或模式 文件存在就報(bào)錯,不存在就創(chuàng)建 //x+增強(qiáng)的異或模式 //b 打開二進(jìn)制文件
1、文件的打開
2、文件的刪除
//rename('1.txt','1.exe');/ /刪除
rmdir('C')//刪除空目錄 ?>
3、什么是文件系統(tǒng)
就是對系統(tǒng)或者服務(wù)器中的文件進(jìn)行操作,增刪改查,文件的上傳和下載
4、文件系統(tǒng)能做什么?
a)文件緩存的應(yīng)用 b)配置文件的應(yīng)用
c)FTP站點(diǎn)主要是FTP下載站 d)站點(diǎn)頁面的靜態(tài)化 e)文件的上傳和下載。
5、文件下載:查找 header
header('content-type:image/gif');//告訴瀏覽器你的文件描述
header('Content-Disposition: attachment;filename=”baidu.gif"');//告訴瀏覽器文件的大小
header('content-length'.filesize('baidu.gif'));//顯示內(nèi)容
readfile('baidu.gif');?>
三、個(gè)人收獲
學(xué)習(xí)PHP的過程做一下概括:
(1)熟悉HTML/CSS/JS等網(wǎng)頁基本元素,完成階段可自行制作完整的網(wǎng)頁,對元素屬性達(dá)到熟悉程度
(2)理解動態(tài)語言的概念,運(yùn)做機(jī)制,熟悉PHP語法
(3)學(xué)習(xí)如何將PHP與HTML結(jié)合起來完成簡單動態(tài)頁面
(4)接觸MYSQL,開始設(shè)計(jì)數(shù)據(jù)庫程序
(5)不斷鞏固,摸透大部分PHP常用函數(shù),并可理解OOP,MYSQL優(yōu)化,以及模板
(6)完成一個(gè)功能齊全的動態(tài)站點(diǎn)
通過這段時(shí)間的學(xué)習(xí),自己受益匪淺,知道了很多關(guān)于PHP的東西,學(xué)會了很多內(nèi)容。在這堂課的學(xué)習(xí)過程中我認(rèn)真聽講,上機(jī)認(rèn)真練習(xí),遇到難題,自己思考與探索,不斷地尋求進(jìn)步,請教老師和同學(xué),雖然上半年沒有學(xué)習(xí)這門課程,不過老師講課非常仔細(xì),然后同學(xué)們一步步自己跟著老師做,還是能跟得上,等著以后自己做畢業(yè)設(shè)計(jì)也有一定的幫助。
第五篇:PHP基礎(chǔ)總結(jié)
1、在HTML嵌入PHP腳本有三種辦法:
<scriptlanguage=“php”>
//嵌入方式一
echo(“test”);
</script>
<?
//嵌入方式二
echo“<br>test2”;
?>
<?php
//嵌入方式三
echo“<br>test3”;
?>
還有一種嵌入方式,即使用和Asp相同的標(biāo)記<%%>,但要修改PHP.ini 相關(guān)配置,不推薦使用。
2、PHP注釋分單行和多行注釋,和java注釋方式相同。
<?
//這里是單行注釋
echo“test”;
/*
這里是多行注釋!可以寫很多行注釋內(nèi)容
*/
?>
注意不要有嵌套注釋,如/*aaaa/*asdfa*/asdfasdfas*/,這樣的注釋會出現(xiàn)問題。
3、PHP主要的數(shù)據(jù)類型有5種,integer,double,string,array,object。
4、函數(shù)內(nèi)調(diào)用函數(shù)外部變量,需要先用global進(jìn)行聲明,否則無法訪問,這是PHP與其他程序語言的一個(gè)區(qū)別。事例代碼:
<?
$a=1;
functiontest(){
echo$a;
}
test();//這里將不能輸出結(jié)果“1”。
functiontest2(){
global$a;
echo$a;
}
test2();//這樣可以輸出結(jié)果“1”。
?>
注意:PHP可以在函數(shù)內(nèi)部聲明靜態(tài)變量。用途同C語言中。
5、變量的變量,變量的函數(shù)
<?
//變量的變量
$a=“hello”;
$$a=“world”;
echo“$a$hello”;//將輸出“helloworld”
echo“$a${$a}”;//同樣將輸出“helloworld”
?>
<?
//變量的函數(shù)
functionfunc_1(){
print(“test”);
}
functionfun($callback){
$callback();
}
fun(“func_1”);//這樣將輸出“test”
?>
6、PHP同時(shí)支持標(biāo)量數(shù)組和關(guān)聯(lián)數(shù)組,可以使用list()和array()來創(chuàng)建數(shù)組,數(shù)組下標(biāo)從0開始。如:
<?
$a[0]=“abc”;
$a[1]=“def”;
$b[“foo”]=13;
$a[]=“hello”;//$a[2]=“hello”
$a[]=“world”;//$a[3]=“world”
$name[]=“jill”;//$name[0]=“jill”
$name[]=“jack”;//$name[1]=“jack”
?>
7、關(guān)聯(lián)參數(shù)傳遞(&的使用),兩種方法。例:
<?
//方法一:
functionfoo(&$bar){
$bar.=“andsomethingextra”;
}
$str=“ThisisaString,”;
foo($str);
echo$str;//output:ThisisaString,andsomethingextra
echo“<br>”;
//方法二:
functionfoo1($bar){
$bar.=“andsomethingextra”;
}
$str=“ThisisaString,”;
foo1($str);
echo$str;//output:ThisisaString,echo“<br>”;
foo1(&$str);
echo$str;//output:ThisisaString,andsomethingextra
?>
8、函數(shù)默認(rèn)值。PHP中函數(shù)支持設(shè)定默認(rèn)值,與C++風(fēng)格相同。
<?
functionmakecoffee($type=“coffee”){
echo“makingacupof$type.n”;
}
echomakecoffee();//“makingacupofcoffee”
echomakecoffee(“espresso”);//“makingacupofespresso”
/*
注意:當(dāng)使用參數(shù)默認(rèn)值時(shí)所有有默認(rèn)值的參數(shù)應(yīng)該在無默認(rèn)值的參數(shù)的后邊定義。否則,程序?qū)⒉粫凑账氲墓ぷ鳌?/p>
*/
functiontest($type=“test”,$ff){//錯誤示例
return$type.$ff;
}
9、PHP的幾個(gè)特殊符號意義。
$變量
&變量的地址(加在變量前)
@不顯示錯誤信息(加在變量前)
->類的方法或者屬性
=>數(shù)組的元素值
?:三元運(yùn)算子
10、include()語句與require()語句
如果要根據(jù)條件或循環(huán)包含文件,需要使用include()。
require()語句只是被簡單的包含一次,任何的條件語句或循環(huán)等對其無效。
由于include()是一個(gè)特殊的語句結(jié)構(gòu),因此若語句在一個(gè)語句塊中,則必須把他包含在一個(gè)語句塊中。
<?
//下面為錯誤語句
if($condition)
include($file);
else
include($other);
//下面為正確語句
if($condition){
include($file);
}else
{
include($other);
}
?>