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 )