PHP面試題匯總(附答案)

2020-07-16 10:05:48
推薦學習《2019年PHP面試題大匯總(收藏)

1.表單中 get與post提交方法的區別?

答:get是傳送請求HTTP協定通過url引數傳遞進行接收,而post是實體資料,可以通過表單提交大量資訊.

2.session與cookie的區別?

答:

session:儲存使用者存取的全域性唯一變數,儲存在伺服器上的php指定的目錄中的(session_dir)的位置進行的存放

cookie:用來儲存連續訪問一個頁面時所使用,是儲存在用戶端,對於Cookie來說是儲存在使用者WIN的Temp目錄中的。

兩者都可通過時間來設定時間長短

3.資料庫中的事務是什麼?

答:事務(transaction)是作為一個單元的一組有序的資料庫操作。如果組中的所有操作都成功,則認為事務成功,即使只有一個操作失敗,事務也不成功。如果所有操作完成,事務則提交,其修改將作用於所有其他資料庫進程。如果一個操作失敗,則事務將回滾,該事務所有操作的影響都將取消。

簡述題:

1、用PHP列印出前一天的時間格式是2006-5-10 22:21:21(2分)****************

答:echo date('Y-m-d H:i:s', strtotime('-1 days'));

2、echo(),print(),print_r()的區別(3分)

答:

echo、print是語言結構,print_r是函數,語句沒有返回值,函數可以有返回值(即便沒有用)

print() 只能列印出簡單型別變數的值(如int,string)

print_r()可以列印出複雜型別變數的值(如陣列,物件)

echo 輸出一個或者多個字串

3、能夠使HTML和PHP分離開使用的模板(1分)

答:Smarty,Dwoo,TinyButStrong,Template Lite,Savant,phemplate,XTemplate

4、使用哪些工具進行版本控制?(1分)

答:cvs,svn,vss;

5、如何實現字串翻轉?(3分)

答:echo strrev($a);

6、優化MYSQL資料庫的方法。(4分,多寫多得)

答:

1、選取最適用的欄位屬性,盡可能減少定義欄位長度,盡量把欄位設定NOT NULL,例如'省份,性別',最好設定為ENUM

2、使用連線(JOIN)來代替子查詢:

3、使用聯合(UNION)來代替手動建立的臨時表

4、事務處理:

5、鎖定表,優化事務處理:

6、使用外來鍵,優化鎖定表

7、建立索引:

8、優化查詢語句

7、PHP的意思(送1分)

答:PHP是一個基於伺服器端來建立動態網站的指令碼語言,您可以用PHP和HTML生成網站主頁

8、MYSQL取得當前時間的函數是?,格式化日期的函數是(2分)

答:now(),date()

9、實現中文字串擷取無亂碼的方法。(3分)****************

Mb_substr

答:

function GBsubstr($string, $start, $length) {
    if(strlen($string)>$length){
     $str=null;
     $len=$start+$length;
     for($i=$start;$i<$len;$i++){
    if(ord(substr($string,$i,1))>0xa0){
     $str.=substr($string,$i,2);
     $i++;
    }else{
     $str.=substr($string,$i,1);
     }
    }
   return $str.'...';
    }else{
   return $string;
   }
}

10、您是否用過版本控制軟體? 如果有您用的版本控制軟體的名字是?(1分)

答:用過,cvs,svn,vss

11、您是否用過模板引擎? 如果有您用的模板引擎的名字是?(1分)

答:用過,smarty

12、請簡單闡述您最得意的開發之作(4分)

答:資訊分類

13、對於大流量的網站,您採用什麼樣的方法來解決存取量問題?(4分)

答:

確認伺服器硬體是否足夠支援當前的流量,資料庫讀寫分離,優化資料表,

程式功能規則,禁止外部的盜鏈,控制大檔案的下載,使用不同主機分流主要流量

14、用PHP寫出顯示用戶端IP與伺服器IP的程式碼1分)

答:列印用戶端IP:

echo $_SERVER[‘REMOTE_ADDR’];
// 或者: 
getenv('REMOTE_ADDR');
// 列印伺服器IP:
echo gethostbyname("www.bolaiwu.com")

15、語句include和require的區別是什麼?為避免多次包含同一檔案,可用(?)語句代替它們? (2分)

答:require->require是無條件包含也就是如果一個流程裡加入require,無論條件成立與否都會先執行require

include->include有返回值,而require沒有(可能因為如此require的速度比include快)

注意:包含檔案不存在或者語法錯誤的時候require是致命的,include不是

16. 在PHP中error_reporting這個函數有什麼作用? (1分)

答:設定錯誤級別與錯誤資訊回報

17. 請寫一個函數驗證電子郵件的格式是否正確 (2分)

答:

function checkEmail($email)
{
    $pregEmail = "/([a-z0-9]*[-_.]?[a-z0-9]+)*@([a-z0-9]*[-_]?[a-z0-9]+)+[.][a-z]{2,3}([.][a-z]{2})?/i";
    return preg_match($pregEmail,$email);  
}

18. 簡述如何得到當前執行指令碼路徑,包括所得到引數。(2分)

答:

$script_name = basename(__file__); 
print_r($script_name);

以上就是PHP面試題匯總(附答案)的詳細內容,更多請關注TW511.COM其它相關文章!