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