準備找PHP工程師的同學是不是對即將的面試有點慌?下面是小編整理的一套PHP面試題及答案,希望對大家有用,更多消息請關注應屆畢業生網。 1. 如何用php的環境變量得到一個網頁地址的內容?ip地址又要怎樣得到? 答案:”http://”.$_SERVER ['HTTP_HOST'].$_SERVER['PHP_SELF'] // 獲取網頁地址 $_SERVER['REMOTE_ADDR'] //獲取IP地址 2. 求兩個日期的差數,例如2007-2-5 ~ 2007-3-6 的日期差數 $from = mktime(0,0,0,2,5,2007); $to = mktime(0,0,0,3,6,2007); echo ($to-$from)/(3600*24); 3. 請寫一個函數,實現以下功能: 字符串“open_door” 轉換成 “OpenDoor”、”make_by_id” 轉換成 ”MakeById”。 答案:$function strOpt($str){ $str_arr = explode(“_”,$str); $len = count($str_arr); $newStr = “”; $str_arr = array_reverse($str_arr); for($i=0;$i<$len;$i++){ $newStr = ucfirst($str_arr[$i]).$newStr; } return $newStr; } echo strOpt(“make_by_id”); 4. 要求寫一段程序,實現以下數組$arr1轉換成數組$arr2: $arr1 = array ( ’0′ => array (‘fid’ => 1, ‘tid’ => 1, ‘name’ =>’Name1′ ), ’1′ => array (‘fid’ => 1, ‘tid’ => 2 , ‘name’ =>’Name2′ ), ’2′ => array (‘fid’ => 1, ‘tid’ => 5 , ‘name’ =>’Name3′ ), ’3′ => array (‘fid’ => 1, ‘tid’ => 7 , ‘name’ =>’Name4′ ), ’4′ => array (‘fid’ => 3, ‘tid’ => 9, ‘name’ =>’Name5′ ) ); $arr2 = array ( ’0′ => array ( ’0′ => array ( ‘tid’ => 1, ‘name’ => ‘Name1′), ’1′ => array ( ‘tid’ => 2, ‘name’ => ‘Name2′), ’2′ => array ( ‘tid’ => 5, ‘name’ => ‘Name3′), ’3′ => array ( ‘tid’ => 7, ‘name’ => ‘Name4′) ), ’1′ => array ( ’0′ => array ( ‘tid’ => 9, ‘name’ => ‘Name5′ ) ) ); 5. 請簡述數據庫設計的範式及應用。 一般第3範式就足以,用於表結構的優化,這樣做既可以避免應用程序過於複雜同時也避免了SQL語句過於龐大所造成系統效率低下。 6.一個表中的Id有多個記錄,把所有這個id的記錄查出來,並顯示共有多少條記錄數,用SQL語句及視圖、存儲過程分別實現。 DELIMITER // CREATE PROCEDURE ProcGet ( IN ID_a INT(11) ) BEGIN DECLARE EXIT HANDLER FOR SQLEXCEPTION BEGIN END; SELECT COUNT(*) AS Sum FROM News Where ID = ID_a; END;// CALL ProcGet(88)// 7 表中有A B C三列,用SQL語句實現:當A列大於B列時選擇A列否則選擇B列,當B列大於C列時選擇B列否則選擇C列。 DELIMITER // CREATE PROCEDURE ProcOut() BEGIN DECLARE EXIT HANDLER FOR SQLEXCEPTION BEGIN END; DECLARE Sum_a INT(11); DECLARE Sum_b INT(11); DECLARE Sum_c INT(11); – 獲取A列中的總值 <– DECLARE cur_1 CURSOR FOR SELECT SUM(A) FROM table_name; OPEN cur_1; FETCH cur_ 1 INTO Sum_a; CLOSE cur_1; – 獲取B列中的總值 <– DECLARE cur_2 CURSOR FOR SELECT SUM(B) FROM table_name; OPEN cur_2; FETCH cur_ 2 INTO Sum_b; CLOSE cur_2; – 獲取C列中的總值 <– DECLARE cur_3 CURSOR FOR SELECT SUM(C) FROM table_name; OPEN cur_3; FETCH cur_ 3 INTO Sum_c; CLOSE cur_3; IF Sum_a > Sum_b THEN SELECT A FROM table_name; ELSEIF Sum_b > Sum_c THEN SELECT B FROM table_name; ELSE SELECT C FROM table_name; END IF;; END;// CALL ProcOut()// 8請簡述項目中優化sql語句執行效率的方法,從哪些方面,sql語句性能如何分析? 9 如果模板是用smarty模板。怎樣用section語句來顯示一個名爲$data的數組。比如: $data = array( [0] => array( [id]=8 [name]=’name1′) [1] => array( [id]=10 [name]=’name2′) [2] => array( [id]=15 [name]=’name3′) …… ) 寫出在模板頁的`代碼? 若用foreach語句又要怎樣顯示呢? 10 寫一個函數,能夠遍歷一個文件夾下的所有文件和子文件夾。(目錄操作) 11 兩張表 city表和province表。分別爲城市與省份的關係表。 city: id City Provinceid 1 廣州 1 2 深圳 1 3 惠州 1 4 長沙 2 5 武漢 3 ………. 廣州 province: id Province 1 廣東 2 湖南 3 湖北 ………. (1) 寫一條sql語句關係兩個表,實現:顯示城市的基本信息。? (2) 顯示字段:城市id ,城市名, 所屬省份 。 如: Id(城市id) Cityname(城市名) Privence(所屬省份) 。。。。。。。。。 。。。。。。。。。 (2)如果要統計每個省份有多少個城市,請用group by 查詢出來。? 顯示字段:省份id ,省份名,包含多少個城市。 12. 按照你的經驗請簡述軟件工程進行軟件開發的步驟。以下工具Rational Rose、PowerDesigner、Project、VSS或CVS、TestDirector使用過那種,有缺點是什麼? 13. 請簡述操作系統的線程與進程的區別。列舉LINUX下面你使用過的軟件? 14. 請使用僞語言結合數據結構冒泡排序法對以下一組數據進行排序 10 2 36 14 10 25 23 85 99 45。