不從泥濘不堪的小道上邁步,就踏不上鋪滿鮮花的大路。以下是小編為大家搜尋整理了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、釋出