相關推薦:《2019年PHP面試題大匯總(收藏)》
1 MySQL資料庫作發布系統的存儲,一天五萬條以上的增量,預計運維三年,怎麼優化?
a. 設計良好的資料庫結構,允許部分資料冗餘,盡量避免join查詢,提高效率。
b. 選擇合適的表格欄位資料類型和儲存引擎,適當的添加索引。
c. mysql庫主從讀寫分離。
d. 找規律分錶,減少單表中的資料量提高查詢速度。
e。增加緩存機制,例如memcached,apc等。
f. 不常改動的頁面,產生靜態頁面。
g. 書寫高效率的SQL。例如SELECT * FROM TABEL 改為SELECT field_1, field_2, field_3 FROM TABLE.
2 對於大流量的網站,您採用什麼樣的方法來解決各頁訪問量統計問題
a. 確認伺服器是否能支撐目前訪問量。
b. 最佳化資料庫存取。
c. 禁止外部存取連結(盜鏈), 例如圖片盜鏈。
d. 控製檔下載。
e. 使用不同主機分流。
f. 使用瀏覽統計軟體,了解訪問量,有針對性的進行最佳化。
3 寫出一個正規表示式,過慮網頁上的所有JS/VBS腳本(即把標記及其內容都去掉)
#答案:
PHP
/<[^>].*?>.*?<\/>/si
4 用PHP印出前一天的時間格式是2006-5-10 22:21:21
答:echo date('Y-m-d H:i:s' , strtotime('-1 天'));
5 echo(),print(),print_r()的差異
答案:echo是語言結構,無回傳值;print功能和echo基本上相同,不同的是print是函數,有回傳值;print_r是遞歸列印,用來輸出陣列物件
6 如何實現字串翻轉?
答:.用strrev函數唄,不准用PHP內建的就自己寫:
strrev($str) { $len=strlen($str); $newstr = ''; for($i=$len;$i>=0;$i--) { $newstr .= $str{$i}; } return $newstr; }
7 實作中文字串截取無亂碼的方法。
答:mb_substr()
8 如何用php的環境變數得到一個網頁位址的內容? ip位址又要怎麼得到?
答:$_SERVSR['REQUEST_URI'] , $_SERVER['REMOTE_ADDR']
9 求兩個日期的差數,例如2007-2-5 ~ 2007-3-6 的日期差數
#答:(strtotime('2007-3-6')-strtotime('2007-2-5'))/3600*24
10 如何透過javascript判斷一個視窗是否已經被屏蔽
答案:取得open()的回傳值,如果是null,就是屏蔽了