15.實作中文字串截取無亂碼的方法。 答:mb_substr() 16.使用php寫一段簡單查詢,查出所有姓名為「張三」的內容並列印出來
複製程式碼
17.如何使用下面的類別,並解釋下面什麼意思?
複製程式碼
答案:用法: $get_test = new test(); $result = $get_test->get_test(2); 將$num變數進行兩次md5後回傳,第2次的md5中的參數,在第一次md5($num)後多加了en 18.使用五種以上方式取得一個檔案的副檔名 要求:dir/upload.image.jpg,找出 .jpg 或 jpg , 答:使用五種以上方式取得一個檔案的副檔名
複製程式碼
19.如何修改session的生存時間 這個函式函式庫讓你處理和顯示各式格式的圖檔,它的另一個常見用途是製作所圖檔。 gd 以外的另一個選擇是imagemagick,但這個函式庫並不內建於php 之中,必須由系統管理員安裝在服務器上答:其實session 還提供了一個函數session_set_cookie_params(); 來設定session 的生存期的,函數必須在session_start() 函數呼叫之前呼叫:
20. 請寫一個函數,實作以下功能: 字串“open_door” 轉換成“opendoor”、”make_by_id” 轉換成”makebyid”。 30.請舉例說明在你的開發過程中用什麼方法來加快頁面的載入速度
a.產生靜態html
b.生成xml
c.可不用資料庫的盡量不用資料庫把變數參數存於文字.
d.用zend加速
答:
21. 如何用php的環境變數得到一個網頁位址的內容? ip位址又要怎麼得到? 答:$_servsr[‘request_uri’] $_server[‘remote_addr’] 22.求兩個日期的差數,例如2007-2-5 ~ 2007-3-6 的日期差數 答:(strtotime(‘2007-3-6’)-strtotime(‘2007-2-5’))/3600*24 23.表中有a b c三列,用sql語句實現:當a列大於b列時選擇a列否則選擇b列,當b列大於c列時選擇b列否則選擇c列。 答:select case when a>b then a else b end, case when b>c then b else c end from test 24.請簡述專案中最佳化sql語句執行效率的方法,從哪些面向,sql語句效能如何分析? 答:(1)選出最有效率的表名順序 (2)where子句中的連接順序 (3)select子句中避免使用‘*’ (4)用where子句取代having子句 (5)透過內部函數提高sql效率 (6)避免在索引列上使用計算。 (7)提高group by 語句的效率, 可以透過將不需要的記錄在group by 之前過濾掉。 25.mysql_fetch_row() 和 mysql_fetch_array() 有什麼分別? mysql_fetch_row() 把資料庫的一列儲存在一個以零為基數的陣列中,第一欄在陣列的索引 0,第二欄在索引 1,如此類推。 mysql_fetch_assoc() 把資料庫的一列儲存在一個關聯陣列中,陣列的索引就是欄位名稱,例如我的資料庫查詢送回「first_name」、「last_name」、「email」三個欄位,陣列的索引便是「first_name」、「last_name」和「email」。 mysql_fetch_array() 可以同時送回 mysql_fetch_row() 和 mysql_fetch_assoc() 的值。 26.下面的程式碼用來做什麼?請解釋。 $date='08/26/2003';print ereg_replace("([0-9] )/([0-9] )/([0-9] )","\2/\1/\3" ,$date); 這是把一個日期從 mm/dd/yyyy 的格式轉為 dd/mm/yyyy 格式。我的一個好朋友告訴我可以把這個正規表達式拆解為以下的語句,對於如此簡單的表示是來說其實無須拆解,純粹為了解說的方便: // 對應一個或更多0-9,後面緊接著一個斜號$regexpression = "([0-9] )/";// 應一個或更多0-9,後面緊接著另一個斜號$regexpression .= "([0-9] )/";// 再對應一個或更多0-9$regexpression .= "([0-9] )";至於\2/\1/\ 3 則是用來對應括號,第一個括號對的是月份, 27.gd 函式庫用來做什麼? 答:這個函式庫讓你處理和顯示各式格式的圖檔,它的另一個常見用途是製作所圖檔。 gd 以外的另一個選擇是 imagemagick,但這個函式庫並不內建於 php 之中,必須由系統管理員安裝在伺服器上 28.請舉例說明在你的開發過程中用什麼方法來加快頁面的載入速度 答:要用到伺服器資源時才打開,及時關閉伺服器資源,資料庫新增索引,頁面可產生靜態,圖片等大檔案單獨伺服器。使用程式碼最佳化工具啦 29.防止sql注射漏洞一般用__addslashes___函數。 30.php中傳值和傳引用、傳送位址的差別是什麼? 答:傳值是把實參的值賦值給行參 那麼對行參的修改,不會影響實參的值 傳遞位址 是傳值的一種特殊方式,只是他傳遞的是地址,不是普通的如int 那麼傳地址以後,實參和行參都指向同一個物件 31。如何透過javascript判斷一個視窗是否已經被屏蔽 答:取得open()的回傳值,如果是null,就是屏蔽了 33.對於大流量的網站,您採用什麼樣的方法來解決訪問量問題 答:首先,確認伺服器硬體是否足夠支援目前的流量 其次,最佳化資料庫存取。 第三,禁止外部的盜鏈。 第四,控制大檔案的下載。 第五,使用不同主機分流主要流量 第六,使用流量分析統計軟體 以上分享一些php面試題與相關答案,希望對大家有幫助。 |