php面試問題

php程式設計師經典面試問題

1、php的意思,它能幹些什麼?

php是一個基於服務端來創建動態網站的腳本語言,您可以用php和html生成網站主頁,英文的全稱(professional home pages) 1、web開發、實現訂單、網路通信、線上支付、一切網際網路可以實現的工作。

2、腳本的開發,shell 腳本、 windows的計畫任務等

3、軟體的開發,php-gtk等第三方的軟體,使用php語法配合其他的語言開發軟體

2、談談對mvc的認識?

由模型(model),視圖(view),控制器(controller)完成的應用程式

由模型發出要實現的功能到控制器,控制器接收組織功能傳遞給視圖;參考《php100視頻教程》43、44、75、76、77講

3、gd庫是做什麼用的?

gd庫提供了一系列用來處理圖片的功能,使用gd庫可以處理圖片,或者生成圖

片。 在網站上gd庫通常用來生成縮略圖或者用來對圖片加水印或者對網站數據

生成報表。現在常用的gd2功能更強大,可以實現對gif、png圖片的處理

4、數據類型(int char varchar datetime text)的意思; 請問varchar和char有什麼別?

int是數字類型,char固定長度字元串,varchar實際長度字元串,datetime日期時間型,text文本字元串,char的場地固定為創建表設定的長度,varchar為可變長度的字元

5、表單中 get與post提交方法的區別?

get是傳送請求http協定通過url參數傳遞進行接收

而post是實體數據,可以通過表單提交大量信息.

6、session與cookie的區別?

session:儲存用戶訪問的全局唯一變數,存儲在伺服器上的php指定的目錄中的一般

用於後台和安全性比較高的地方。cookie:是存儲在客戶端,對於cookie來說是存儲在用戶瀏覽器下面的,一般用戶

登入,負載壓力比較大的地方。可以減輕伺服器的負載。

7、echo(),print(),print_r()的區別?

echo是php語句, print和print_r是函式,語句沒有返回值,函式可以有返回值print()只能列印出簡單類型變數的值(如int,string)

print_r() 可以列印出複雜類型變數的值(如數組,對象)

echo 輸出一個或者多個字元串

8、什麼是模板技術、能夠使html和php分離開使用的模板?

模板技術就是使php和html、css、js 分離,實現更加合理和代碼的部署smarty ,xtemplate, template lite, easy template…

9、使用哪些工具進行版本控制?

cvs 、 svn 、vss

參考《php100視頻教程》94、95講

10、對於大流量的網站,您採用什麼樣的方法來解決訪問量問題?

確認伺服器硬體是否足夠支持當前的流量,資料庫讀寫分離,最佳化數據表,

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

1、php程式上可以使用生成靜態檔案實現服務資料庫壓力

2、使用php快取技術、或第三方的mamcached 等快取技術實現伺服器壓力參考《php100視頻教程》samrty快取技術、mamcached快取用法

11、include和require的區別是什麼?為避免多次包含同一檔案可用什麼代替它們?

包含檔案不存在或者語法錯誤的時候require是致命的,include不是 require需要放在頭部預先載入,而include放在檔案的任何位置隨時載入

還有一對擴展函式:require_once() include_once()

12、mysql_fetch_row() 和mysql_fetch_array之間有什麼區別?

mysql_fetch_row 是從結果集取出1行數組,作為枚舉

mysql_fetch_array 是從結果集取出一行數組作為關聯數組,或數字數組,兩者兼得

php程式設計師基礎面試問題

1、用php列印出前一天的時間,格式是XX-5-10 22:21:21

echo date(‘y-m-d h:i:s’,date(‘u’)-86400);

或者 echo date('y-m-d h:i:s', strtotime('-1 day'));

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

echo 是php語句,語句是沒有返回值的,而print和print_r是函式,函式可以有返回值。

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

print_r可以列印出複雜類型變數的值(如數組,對象)

echo -- 輸出一個或者多個字元串

3、能夠使html和php分離開使用的模板

smarty模板

4、使用哪些工具進行版本控制?

cvs和svn [ subversion ]

5、如何實現字元串翻轉?

使用php函式strrev( ‘abc’)

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

(1).選取最適用的欄位屬性,應該儘量把欄位設定為not null,這樣在將來執行查詢的時候,資料庫不用去比較null值。

(2).使用連線(join)來代替子查詢(sub-queries)

(3).使用聯合(union)來代替手動創建的臨時表

(4).儘量少使用 like 關鍵字和通配符

(5).使用事務和外鍵

7、php的意思

php 是一種伺服器端的,嵌入html的腳本語言。

英文“超級文本預處理語言”(hypertext preprocessor)的縮寫

8、mysql取得當前時間的函式是?,格式化日期的函式是

now( ) date_format( date, format )