PHP面試題及答案
PHP是一種通用開源指令碼語言,下面是本站小編為大家搜尋整理的關於PHP面試題及答案題,歡迎參考閱讀,希望對大家有所幫助!想了解更多相關資訊請持續關注我們應屆畢業生考試網!
練習題一
1. echo count(“abc”); 輸出什麼?
答案:1
2. 用PHP程式碼寫出顯示客戶端IP與伺服器IP的程式碼。
答案:客戶端 getenv(‘REMOTE_ADDR’); 伺服器端 getenv(‘SERVER_ADDR’);
// gethostbyname(“”);
3. error_reporting(2047)什麼作用?
答案:相當於 error_reporting(‘E_ALL’); 輸出所有的錯誤。
4.如何實現PHP、JSP互動?
答案: 題目有點含糊不清,SOAP,XML_RPC,Socket function,CURL都可以實現這些,如果是考PHP和Java的整合,PHP內建了這種機制(如果考PHP和的整合,也可以這麼回答), 例如$foo = new Java(‘em’);
5. 開啟中的Safe_mode,會影響哪些引數?至少說出6個。
答案:此模組開啟時,php將檢查當前指令碼的擁有者是否和受操作文件的擁有者相同,因此,將影響檔案操作類函式,程式執行函式(program Execution Functions)。這些函式有info,basename,fopen,system,exec,proc_open 等函式;
6. 請寫一個函式驗證電子郵件的格式是否正確(要求使用正則)。
function checkEmail($mail){
$reg = ‘/^w+([-+.]w+)*@w+([-.]w+)*.w+([-.]w+)*$/’;
$rst = preg_match($reg , $mail);
if($rst){
return TRUE;
}else {
return FALSE;
} }
7. 寫個函式用來對二維陣列排序。
答案:array_multisort() 。
8、優化MYSQL資料庫的方法。
答案:(1).資料庫設計方面,這是DBA和Architect的責任,設計結構良好的資料庫,必要的時候,去正規化(英文是這個:denormalize,中文翻譯成啥我不知道),允許部分資料冗餘,避免JOIN操作,以提高查詢效率。
(2).系統架構設計方面,表雜湊,把海量資料雜湊到幾個不同的表裡面.快慢表,快表只留最新資料,慢表是歷史存檔.叢集,主伺服器Read & write,從伺服器read only,或者N臺伺服器,各機器互為Master。
(3).(1)和(2)超越PHP programmer的要求了,會更好,不會沒關係.檢查有沒有少加索引。
(4).寫高效的SQL語句,看看有沒有寫低效的SQL語句,比如生成笛卡爾積的全連線啊,大量的Group By和order by,沒有limit等等.必要的時候,把資料庫邏輯封裝到DBMS端的儲存過程裡面.快取查詢結果,explain每一個sql語句。
(5).所得皆必須,只從資料庫取必需的資料,比如查詢某篇文章的評論數,select count(*) … where article_id = ? 就可以了,不要先select * … where article_id = ?然後msql_num_rows. 只傳送必須的SQL語句,比如修改文章的時候,如果使用者只修改了標題,那就… set title = ? where article_id = ?不要set content = ?(大文字)。
(6).必要的時候用不同的儲存引擎,比如InnoDB可以減少死鎖,HEAp可以提高一個數量級的查詢速度。
練習題二
1.請寫出PHP5許可權控制修飾符。
答案:private protected public。
2.對於大流量的網站,您採用什麼樣的方法來解決訪問量問題?
答案:首先,確認伺服器硬體是否足夠支援當前的流量。
其次,優化資料庫訪問。
第三,禁止外部的盜鏈。
第四,控制大檔案的'下載。
第五,使用不同主機分流主要流量 第六,使用流量分析統計軟體。
3.在HTTP 1.0中,狀態碼 401 的含義是?;如果返回"找不到檔案"的提示,則可用 header 函式, 其語句是?
答案:401的含義是未授權。
header(“HTTp/1.0 404 Not Found”);———找不到檔案
header(“HTTp/1.1 403 Forbidden”);———不允許訪問
4.以Apache模組的方式安裝PHP,在檔案中首先要怎樣動態裝載PHP模組,然後再用什麼語句使得Apache把所有副檔名為php的檔案都作為PHP指令碼處理。
答案:動態裝載PHP模組:LoadModule php5_module "c:/php/"
把所有副檔名為php的檔案都作為pHp指令碼處理: AddType application/x-httpd-php-source AddType application/x-httpd-php 5 4 3 l
5.類的屬性可以序列化後儲存到 session 中,從而以後可以恢復整個類,這要用到的函式是?
答案:serialize() /unserialize()。
6.一個函式的引數不能是對變數的引用,除非在中把什麼模組設為on。
答案:allow_call_time_pass_reference。