PHP面試01

mpsky發表於2021-09-09

1、表單中get和post的區別

(1)get是從伺服器獲取資料,post是向伺服器傳送資料;

(2)get是將資料透過URL傳送,post則是透過HTTP post機制;

(3)get傳送的資料量較小,post可以傳送的資料量較大;

(4)get安全性低,post安全性高,效率上get比post要好;

(5) 對於get方式,伺服器端用Request.QueryString獲取變數的值,對於post方式,伺服器端用Request.Form獲取提交的資料。

2、session與cookie的異同

session是為了彌補Web服務無狀態會話的一個伺服器端儲存的一個臨時使用者資料,根據這個資料,伺服器可以重建使用者會話資訊。
cookie是為了適應本地指令碼臨時資料儲存和與伺服器端互動進行會話認證的資料保持功能

簡單的說,session需要啟用cookie才能正常的使用。

如果脫離伺服器端只考慮初期HTML+指令碼的方式來考慮的話,壓根就沒有session的檔案,因為是靜態的頁面,不會與伺服器發生後續關係(拋開ajax的請求)。所以cookie也就成為指令碼執行的本地儲存檔案。cookie的存在形式為“鍵名=鍵值”,以“;"分隔。

持續時長的區別:
cookie有一個定義的時長,超過時長,瀏覽器將認為過期,會棄用並刪除此cookie檔案。因此即使伺服器端的Session仍存在,因為cookie資訊已經丟失,無法找回對應的PHPSESSID的值而無法實現會話的重建。如果不定義超時時長,則在關閉瀏覽器時自動失效。
session可以指定存在期限,如果超過存在時限之前,此COOKIE中PHPSESSID值對應的Session有過請求會自動延長時長,直到超過時長未請求後會透過回收機制進行清除,但不完全保證可以正常回收。如果被回收後,即使本地仍存有cookie檔案,但由於對應PHPSESSID的Session檔案已不存在,所以也無法重建會話。

3、用PHP列印時間格式為2014-2-1 13:22:22的前一天

echo date("Y-m-d H:i:s","-1day");

4、echo()、print()、print_r()、printf()的區別

echo可以一次輸出多個值,是PHP語句,沒有返回值

print是函式,有返回值可以列印簡單型別的值

print_r是函式,可以列印複雜型別變數的值,如陣列,物件等

printf源自C語言,可以輸出格式化的字串

5、分離HTML和PHP的模板

Smarty、Dwoo、Savant、TinyButStrong

6、版本控制工具

SVN、git、CVS、vss

7、如何實現字串的翻轉

echo strrev($a);

8、最佳化mysql資料庫的方法


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/1806/viewspace-2809520/,如需轉載,請註明出處,否則將追究法律責任。

相關文章