PHP考試複習資料

來源:文萃谷 3.01W

不從泥濘不堪的小道上邁步,就踏不上鋪滿鮮花的大路。以下是小編為大家搜索整理了PHP考試複習資料,希望能給大家帶來幫助!更多精彩內容請及時關注我們應屆畢業生考試網!

PHP考試複習資料

1、PHP的概念和PHP語言的優勢。

一種應用廣泛、功能強大的嵌入HTML中開放源代碼的腳本語言。尤其適合 WEB 開發。 特點:1.開放源代碼、支持多種數據庫,完全免費。

2.效率高:PHP消耗相當少的系統資源。

3.易學易用,功能強大。跨平台的。可以運行在UNIX、LINUX、WINDOWS下。

4.嵌入HTML:因為PHP可以嵌入HTML語言,學習起來並不困難。

5是面向對象的。

優勢:1.將程序嵌入到HTML文檔中執行,執行效率比完全生成HTML標記的CGI要高;

2.在服務器端執行,充分利用服務器的性能

3.將用户經常訪問的PHP程序駐留在內存中,其他用户再次訪問時不需要重新編譯程序,直接執行代碼就可以。

2、PHP常用的嵌入方式

方法一:PHP標準結構,

方法二:PHP的簡短風格,

注意:此方法需要在中去配置才能生效,開啟 short_open_tag = on

方法三:PHP的script風格,

方法四:asp風格,

注意:此方法需要在中去配置才能生效,開啟 asp_tags = on

3、PHP的常量和變量

變量:變量的名稱是對大小寫敏感的,正確設置方法是$var_name=value,一個有效的變量名由字母或者下劃線開頭,後面跟上任意數量的字母,數字,或者下劃線,不能包含空格。PHP5開始,長格式的PHP預定義變量可以通過設置register_long_arrays來屏蔽。 $_COOKIE,經由 HTTP Cookies 方法提交至腳本的變量。類似於舊數組 $HTTP_COOKIE_VARS 數組(依然有效,但反對使用)。

$_FILES,經由 HTTP POST 文件上傳而提交至腳本的變量。類似於舊數組 $HTTP_POST_FILES 數組(依然有效,但反對使用)。

$_ENV,執行環境提交至腳本的變量。類似於舊數組 $HTTP_ENV_VARS 數組(依然有效,但反對使用)。

$_REQUEST,經由 GET,POST 和 COOKIE 機制提交至腳本的變量,因此該數組並不值得信任。 $_SESSION,當前註冊給腳本會話的變量。類似於舊數組 $HTTP_SESSION_VARS 數組(依然有效,但反對使用)。

REQUEST_METHOD,獲得對應頁面方法。如:get、post

QUERY_STRING,獲取對應頁面的請求字符串。

DOCUMENT_ROOT,獲得根目錄。

HTTP_REFERER,鏈接到當前頁面的前一頁面的 URL 地址

REMOTE_ADDR ,正在瀏覽當前頁面用户的 IP 地址。 用法:$_SERVER['QUERY_STRING']

常量:標識符大寫,大小寫敏感,在程序腳本執行期間該值不能改變。可以用 define() 函數來定義常量,函數的第一個參數表示常量名,第二個參數表示常量的值。常量名遵循標識符命名規則;只能包含標量數據(boolean,integer,float 和 string)

__LINE__,文件中的當前行號。

__FILE__,文件的完整路徑和文件名。

__FUNCTION__,函數名稱(這是 PHP 4.3.0 新加的)。

__CLASS__,類的名稱(這是 PHP 4.3.0 新加的)。

__METHOD__,類的方法名(這是 PHP 5.0.0 新加的)

PHP_VERSION,這個是當前 PHP 的版本,如 '3.0.8-dev'。

PHP_OS PHP,所在的操作系統的名字,如 'WINNT'。

E_ERROR,這個常量指到最近的錯誤處。

E_WARNING,這個量數指到最近的警告處。

E_PARSE,本常量為剖析語法有潛在問題處。

E_NOTICE,這個常式為發生不尋常但不一定是錯誤處。例如存取一個不存在的變量。

4、PHP中常見的數據類型有哪些

四種標量類型(布爾型、整型、浮點型、字符串),兩種複合類型(數組、對象),一類特殊類型(資源、NULL)

5、PHP的字符串及常用的處理函數

A. 字符串輸出函數

(1)echo是一個語言結構,而不是一個真正的函數。

(2)print($a)輸出字符串。若成功則返回 1,失敗返回 0

(3)print_r($a)可以輸出數組,輸出成功時返回true

(4)var_dump($a)能輸出類型、長度、值

B. 去除字符串首尾空格的函數: trim ltrim rtrim(別名:chop)

C. 轉義字符串函數:addslashes()

D. 獲取字符串長度的函數:strlen()

E. 截取字符串長度的的函數:substr()

F. 檢索字符串函數: strstr() , strpos()

G. 替換字符串函數:str_replace()

6、PHP中函數傳遞參數的方式有哪些,兩者有什麼區別

按值傳遞和按地址傳遞(或按引用傳遞)

(1)按值傳遞: 傳遞後的變量會被改變,但不影響原本的.變量值。

(2)按地址傳遞: 使用 & 符號,函數體做的修改,直接影響到函數體外部的該變量的值。

7、POST和GET兩種方式的區別和聯繫

Post是系統的默認值,

用get方式會將表單的值顯示在url中,適合傳輸小量數據。

用post方式則不會把表單的值顯示在url中,適合大量數據的傳送。

$_GET變量和$_POST都是一個包含名稱[name]和值[value]的數組,這些名稱和值都可以利用。

8、數組的概念,數組元素的訪問和賦值,數組元素的遍歷,常見的數組運算,常見的數組函數,如排序,數組合併為字符串,字符串拆分為數組等

Php中的數組實際上是一個”有序映射”。把值映射到關鍵字上。數組就是關鍵字->值的集合。Key可以是integer或者是string,而value可以是任何值。

定義“$aa=array(key=>value);訪問與賦值:$aa[key]/$aa[0];初始化$aa=array(“2”,”d”),這裏是可以省略key值。

常見的數組函數:

each($arr)函數生成一個由數組當前內部指針所指向的元素的鍵名和鍵值組成的數組,並把內部指針向前移動 。

list() 一般與each()元素使用,將數組元素分解一系列的值。

count($arr); 獲得數組的個數

unset($arr[0]);刪除數組中的元素。

array_slice($arr,int offset,[int length]); 獲得數組的子集

array_unshift($arr,key=>value); 向數組開頭插入元素

array_push($arr,key=>value); 向數組結尾插入元素

array_values()函數將返回整個數組元素,並將元素中的鍵變為數值鍵。

Sort()按值正向排序

Asort()同上,且保持關鍵字和值的對應關係。

Rsort()反向排序。

Arsort()同上,保持關鍵字和值的對應關係。

Ksort()按照關鍵字排序,保持對應關係

9、PHP數組與其他語言數組的區別(PPT54)

10、文件的打開、關閉、讀寫、刪除

fopen();fclose();fread(讀);fwrite(寫);unlink(刪除文件);

file_exists(文件是否存在);kmdir(新建目錄)

11、文件上傳需要注意哪些細節?怎麼把文件保存到指定目錄?怎麼避免上傳文件重名問題

1.首現要在中開啟文件上傳;

2.在中有一個允許上傳的最大值,默認是2MB。必要的時候可以更改;

3.上傳表單一定要記住在form標籤中寫上enctype="multipart/form-data";

4. 提交方式 method 必須是 post;

5. 設定 type="file" 的表單控件;

6.要注意上傳文件的大小MAX_FILE_SIZE、文件類型是否符合要求,上傳後存放的路徑是否存在。

可以通過上傳的文件名獲取到文件後綴,然後使用時間戳+文件後綴的方式為文件重新命名,這樣就避免了重名。

可以自己設置上傳文件的保存目錄,與文件名拼湊形成一個文件路徑,使用move_uploaded_file(),就可以完成將文件保存到指定目錄。

12、session和cookie的概念

cookie是保存在客户端機器的,對於未設置過期時間的cookie,cookie值會保存在機器的內存中,只要關閉瀏覽器則cookie自動消失。如果設置了cookie的過期時間,那麼瀏覽器會把cookie以文本文件的形式保存到硬盤中,當再次打開瀏覽器時cookie值依然有效。

session是把用户需要存儲的信息保存在服務器端。每個用户的session信息就像是鍵值對一樣存儲在服務器端,其中的鍵就是sessionid,而值就是用户需要存儲信息。服務器就是通過sessionid來區分存儲的session信息是哪個用户的。

13、session和cookie的使用步驟

使用session的步驟:

1. 啟動session:使用session_start()函數來啟動。

2. 註冊會話:直接給$_SESSION數組添加元素即可。

3. 使用會話:判斷session是否為空或者是否已經註冊,如果已經存在則像普通數組使用即可。

4. 刪除會話:可以使用unset刪除單個session;使用$_SESSION=array()的方式,一次註銷所有的會話變量;使用session_destroy()函數來徹底銷燬session。

cookie怎麼使用?

1. 記錄用户訪問的部分信息

2. 在頁面間傳遞變量

3. 將所查看的internet頁存儲在cookies臨時文件夾中,可以提高以後的瀏覽速度。 創建cookie:setcookie(string cookiename , string value , int expire); 讀取cookie:通過超級全局數組$_COOKIE來讀取瀏覽器端的cookie的值。

刪除cookie:有兩種方法1.手工刪除方法:右擊瀏覽器屬性,可以看到刪除cookies,執行操作即可將所有cookie文件刪除。ookie()方法:跟設置cookie的方法一樣,不過此時將cookie的值設置為空,有效時間為0或小於當前時間戳。

14、session和cookie的生命週期

session

釋放指定的session變量:unset(),eg:unset($_SESSION[‘views’])

Session_destory()函數徹底終結session

Session_destory()將重置session,您將失去所有已存儲的session數據。

cookie

cookie在瀏覽器退出時就會過期,可以設置cookie的expire屬性來控制它的生存週期,cookie的終止時間是以Unix的時標來表示的。而刪除cookie方法是把過期時間設置為一個以前的時間。Eg:setcookie(“user”,””,time()-3600);

15、session和cookie的區別

兩者最大的區別就是session存儲在服務器端,而cookie是在客户端。session安全性更高,而cookie安全性弱。session在web開發中具有非常重要的份量。它可以將用户正確登錄後的信息記錄到服務器的內存中,當用户以此身份訪問網站的管理後台時,無需再次登錄即可得到身份確認。而沒有正確登錄的用户則不分配session空間,即便輸入了管理後台的訪問地址也不能看到頁面內容。通過session確定了用户對頁面的操作權限。

16、使用cookie的注意事項

1) setcookie()之前不可以有任何頁面輸出,就是空格,空白行也不可以;

2) setcookie()後,在當前頁面調用$_COOKIE['cookiename']不會有輸出,必須刷新或到下一個頁面才可以看到cookie值;

3) 不同的瀏覽器對cookie處理不同,客户端可以禁用cookie,瀏覽器也可以閒置cookie的數量,一個瀏覽器能創建的cookie數量最多300個,並且每個不可以超過4kb, 每個web站點能設置的cookie總數不能超過20個。

4) cookie是保存在客户端的,用户禁用了cookie,那麼setcookie就不會起作用了。所以不可以過度依賴cookie。

17、如何設置一個cookie的名字為username,值為jack,並且讓此cookie一週後失效 setcookie(‘username’,’jack’,time()+7*24*3600);

18、如何啟動、註銷session

在標籤前面之前使用session_start()函數以啟動session,

19、sql語句的使用

要讓php執行上面的語句,必須使用mysql_query()函數,此函數用於向MySQL連接發送查詢或命令。

創建表:create database “表名”,eg: create database database_name

插入數據:insert into table_name(表名) eg: insert into table_name(a,b);

選取數據:select column_name(“數據庫表字段名”) from table_name(“表名”); 更新數據:

update table_name set colunm_name=new_value where colunm_name=some_value 刪除數據:Delete from table_name where colunm_name=some_value

條件查詢:select colunm from table where colunm operator value

Eg:select column(數據庫表字段名) from table(數據庫表名) where colunm(“數據庫表字段名”) operator(運算符,eg:“+”) value(“條件值”)

數據排序:select colunm_name(s) from table_name order by colunm_name

Eg:select colunm(數據庫表字段名) from table(數據庫表名) order by colunm(數據庫表字段名)

20、連接數據庫操作的步驟是什麼?每一步的返回值是什麼數據類型?尤其是mysql_query()返回什麼數據類型?

mysql_connect('','','');

mysql_select_db('數據庫名',$conn);

mysql_query("set names utf8");

21、mysql_pconnect()和mysql_connect()有什麼區別

第一個是返回結果集中的一行作為索引數組,第二個是返回關聯數組,而第三個既可以返回索引數組也可以返回關聯數組,取決於它的第二個參數 MYSQL_BOTH MYSQL_NUM MYSQL_ASSOC 默認為MYSQL_BOTH

$sql =”select * from table1”;

$result = mysql_query($sql);

mysql_fetch_array($result, MYSQL_NUM);

22、mysql_fetch_row()、 mysql_fetch_array()、 mysql_fetch_assoc()函數的作用及區別?

這幾個函數都是用於獲取查詢的結果集,只不過獲取的方式不一樣。

mysql_fetch_row,這個函數是從結果集中取一行作為枚舉數據,並作為數組返回。mysql_fetch_row() 從和指定的結果標識關聯的結果集中取得一行數據並作為數組返回。。每個結果的列儲存在一個數組的單元中,偏移量從 0 開始。

mysql_fetch_array() 是 mysql_fetch_row() 的擴展版本。除了將數據以數字索引方式儲存在數組中之外,還可以將數據作為關聯索引儲存,用字段名作為鍵名。

mysql_fetch_assoc()函數從結果集中返回的數據以數組返回後只能以key為數組下標。

mysql_fetch_row,mysql_fetch_array,mysql_fetch_assoc不同點是

mysql_fetch_row返回的結果集只能是以0,1,2,3...這種數據索引的方式來讀取數據, mysql_fetch_array返回的結果集是既有0,1,2,3這種數字下標,也有以你表字段為名

子的key

mysql_fetch_assoc返回的結果集只能以key為數組下標

23、利用PHP開發網站的一般步驟

1、可行性分析;2、功能需求分析;3、數據庫設計;4、頁面設計;5、後台程序開發;

6、測試;7、發佈

熱門標籤