「PHP學習網」 公衆號會天天分享一些面試題,正在找工做的小夥伴們能夠來看看哦。
<form action=」action.php」 method=」post」 enctype=」multipart/form-data」> <input type=」file」 name=」pic」 /> <input type=」submit」 value=」提交」 /> </form> Action.php: $name=$_FILES[‘pic’][‘name’]; $type=$_FILES[‘pic’][‘type’]; $tmp=$_FILES[‘pic’][‘tmp_name’]; $error=$_FILES[‘pic’][‘error’]; $size=$_FILES[‘pic’][‘size’]; $maxsize=1024*1024*5; If($size>$maxsize){ Exit(‘圖片大小超出’); } $name_arr=array(‘gif’,’png’,’jpg’,’jpeg’); $ext=pathinfo($name,PATHINFO_EXTENSION); If(!in_array($ext,$name_arr)){ Exit(‘圖片類型不正確’); }
一、 數據庫設計方面,設計結構良好的數據庫,容許部分數據冗餘。
選取最適用的字段屬性,儘量把字段設置爲NOT NULL,這樣在查詢的時候,數據庫不用去比較NULL值。php
二、系統架構設計方面,表散列,把海量數據散列到幾個不一樣的表裏面,集羣,數據庫查詢和寫入分開。mysql
三、寫高效sql語句,以提升效率。
使用鏈接(join)來代替子查詢
使用聯合(union)來代替手動建立的臨時表面試
四、所得皆必須,只從數據庫取必須的數據。redis
五、必要的時候用不一樣的存儲引擎,好比Innodb能夠減小死鎖,HEAP能夠提升一個數量級的查詢速度。sql
六、使用事務數據庫
七、使用外鍵數組
八、使用索引緩存
一、過濾掉一些常見的數據庫操做關鍵字:select,insert,update,delete,and,*等
或者經過系統函數:addslashes(須要被過濾的內容)來進行過濾。安全
二、在PHP配置文件中
Register_globals=off;設置爲關閉狀態 //做用將註冊全局變量關閉。
好比:接收POST表單的值使用$_POST['user'],若是將register_globals=on;直接使用$user能夠接收表單的值。服務器
三、SQL語句書寫的時候儘可能不要省略小引號(tab鍵上面那個)和單引號
四、提升數據庫命名技巧,對於一些重要的字段根據程序的特色命名,取不易被猜到的
五、對於經常使用的方法加以封裝,避免直接暴漏SQL語句
六、開啓PHP安全模式 Safe_mode=on;
七、打開magic_quotes_gpc來防止SQL注入
Magic_quotes_gpc=off;默認是關閉的,它打開後將自動把用戶提交的sql語句的查詢進行轉換,把'轉爲',這對防止sql注入有重大做用。
所以開啓:magic_quotes_gpc=on;
八、控制錯誤信息
關閉錯誤提示信息,將錯誤信息寫到系統日誌。
九、使用mysqli或pdo預處理。
普通索引、主鍵索引、惟一索引
並不是全部的數據庫都以相同的方式使用索引,做爲通用規則,只有當常常查詢列中的數據時才須要在表上建立索引。
數組的下標最好是數字類型的,數字類型的處理速度快。
++i效率比i++的效率更高,由於++i少了一個返回i的過程。
Magic_quotes_gpc()是php配置文件中的,若是設置爲on則會自動POST,GET,COOKIE中的字符串進行轉義,在'以前加\
Magic_quotes_runtime()是php中的函數,若是參數爲true則會數據庫中取出來的單引號、雙引號、反斜線自動加上反斜槓進行轉義。
Memcache是一種緩存技術,在必定的時間內將動態網頁通過解析以後保存到文件,下次訪問時動態網頁就直接調用這個文件,而沒必要在從新訪問數據庫。使用memcache作緩存的好處是:提升網站的訪問速度,減輕高併發時服務器的壓力。
Memcache的優勢:穩定、配置簡單、多機分佈式存儲、速度快
最後各位能夠掃下方二維碼關注我公衆號,目前我正在更新基礎面試題,以後會更新中高級、redis、liunx面試題