1)、寫一個函數,從一個標准url里取出文件的擴展名,需要取出php或.php
<?php $a="http://www.test.com.cn:88/abc/de/fg.php?id=1"; $b=parse_url($a);//解析 URL,以數組的方式返回其組成部分 var_dump($b); echo '<br>'; // 方法一 echo substr($b['path'],strpos($b['path'],'.')); echo '<br>'; // 方法二 $path_array = explode('.',$b['path']); echo end($path_array);
參考函數:
2)、描述一下大流量高並發量網站的解決方案
- 首先,確認服務器硬件是否足夠支持當前的流量 普通的P4服務器一般最多能支持每天10萬獨立IP,如果訪問量比這個還要大, 那么必須首先配置一台更高性能的專用服務器才能解決問題 ,否則怎么優化都不可能徹底解決性能問題。
- 其次,優化數據庫訪問前台實現完全的靜態化當然最好,可以完全不用訪問數據庫,不過對於頻繁更新的網站, 靜態化往往不能滿足某些功能。 緩存技術就是另一個解決方案,就是將動態數據存儲到緩存文件中,動態網頁直接調用 這些文件,而不必再訪問數據庫,WordPress和Z-Blog都大 量使用這種緩存技術 如果確實無法避免對數據庫的訪問,那么可以嘗試優化數據庫的查詢SQL.避免使用 Select * from這樣的語句,每次查詢只返回自己需要的結果,避免短時間內的大,盡量做到"所查即所得" ,遵循以小表為主,附表為輔,查詢條件先索引,先小后大的原則,提高查詢效率.量SQL查詢。
- 禁止外部的盜鏈 外部網站的圖片或者文件盜鏈往往會帶來大量的負載壓力,因此應該嚴格限制外部對於自身的圖片或者文件盜鏈,好在目前可以簡單地通過refer來控制盜 鏈,Apache自 己就可以通過配置來禁止盜鏈,IIS也有一些第三方的ISAPI可以實現同樣的功能。當然,偽造refer也可以通過代碼來實現盜 鏈,不過目前蓄意偽造refer盜鏈的還不多, 可以先不去考慮,或者使用非技術手段來解決,比如在圖片上增加水印。
- 控制大文件的下載。 大文件的下載會占用很大的流量,並且對於非SCSI硬盤來說,大量文件下載會消耗 CPU,使得網站響應能力下降。因此,盡量不要提供超過2M的大文件下載,如果需要提供,建議將大文件放在另外一台服務器上。
- 使用不同主機分流主要流量 將文件放在不同的主機上,提供不同的鏡像供用戶下載。比如如果覺得RSS文件占用流量大,那么使用FeedBurner或者FeedSky等服務將RSS 輸出放在其他主機上,這樣別人訪問的流量壓力就大多集中在FeedBurner的主機上,RSS就不占用太多資源了。
- 使用流量分析統計軟件 在網站上安裝一個流量分析統計軟件,可以即時知道哪些地方耗費了大量流量,哪些頁面需要再進行優化,因此,解決流量問題還需要進行精確的統計分析才可以。 我推薦使用的流量分析統計軟件是Google Analytics(Google分析)。若還有其他的流量分析軟件,歡迎共享交流.
3)、如何設計或配置Mysql,才能達到高效使用的目的
- 數據庫設計方面,設計結構良好的數據庫,允許部分數據冗余。 選取最適用的字段屬性,盡可能把字段設置為NOT NULL,這樣在查詢的時候,數據庫不用去比較NULL值。
- 系統架構設計方面,表散列,把海量數據散列到幾個不同的表里面,集群,數據庫查詢和寫入分開。 寫高效sql語句,以提高效率。使用連接(join)來代替子查詢使用聯合(union)來代替手動創建的臨時表所得皆必須,只從數據庫取必須的數據。必要的時候用不同的存儲引擎,比如Innodb可以減少死鎖,HEAP可以提高一個數量級的查詢速度。
4)、如何進行防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預處理。
5)、用PHP寫出一個安全的用戶登錄系統需要注意哪些方面。
- 密碼要使用MD5(密碼+字符串)進行加 密。
- 登錄表單的名稱不要跟數據庫字段一樣,以免暴漏表字段。
- 用戶表的表名、字段名、密碼盡量用不容易被猜到的。
- 要使用驗證碼驗證登陸,以防止 暴力破解。
- 驗證提交的數據是不是來自本網站。
- 登錄后台處理代碼數據庫部分使用預處理,做好過濾,防止sql注入。
6)、$_SERVER
$indicesServer = array('PHP_SELF', 'argv', 'argc', 'GATEWAY_INTERFACE', 'SERVER_ADDR', 'SERVER_NAME', 'SERVER_SOFTWARE', 'SERVER_PROTOCOL', 'REQUEST_METHOD', 'REQUEST_TIME', 'REQUEST_TIME_FLOAT', 'QUERY_STRING', 'DOCUMENT_ROOT', 'HTTP_ACCEPT', 'HTTP_ACCEPT_CHARSET', 'HTTP_ACCEPT_ENCODING', 'HTTP_ACCEPT_LANGUAGE', 'HTTP_CONNECTION', 'HTTP_HOST', 'HTTP_REFERER', 'HTTP_USER_AGENT', 'HTTPS', 'REMOTE_ADDR', 'REMOTE_HOST', 'REMOTE_PORT', 'REMOTE_USER', 'REDIRECT_REMOTE_USER', 'SCRIPT_FILENAME', 'SERVER_ADMIN', 'SERVER_PORT', 'SERVER_SIGNATURE', 'PATH_TRANSLATED', 'SCRIPT_NAME', 'REQUEST_URI', 'PHP_AUTH_DIGEST', 'PHP_AUTH_USER', 'PHP_AUTH_PW', 'AUTH_TYPE', 'PATH_INFO', 'ORIG_PATH_INFO') ; echo '<table cellpadding="10">' ; foreach ($indicesServer as $arg) { if (isset($_SERVER[$arg])) { echo '<tr><td>'.$arg.'</td><td>' . $_SERVER[$arg] . '</td></tr>' ; } else { echo '<tr><td>'.$arg.'</td><td>-</td></tr>' ; } } echo '</table>' ;
7)、下面說法不正確的是:C
A. PHP有四種標量類型:布爾型(boolean),整型(integer),浮點型(float),字符串(string)
B. 浮點型(float)與雙精度型(double)是同一種類型
C. 符合類型包括:數組(array),對象(object),資源(resource)
D. 偽類型:混合型(mixed),數字型(number),回調(callback)
參考:http://blog.csdn.net/snn1410/article/details/7728971
8)SESSION與 COOKIE的區別是什么,請從協議,產生的原因與作用說明?
- http無狀態協議,不能區分用戶是否是從同一個網站上來的,同一個用戶請求不同的 頁面不能看做是同一個用戶。
- SESSION保存在服務器端,COOKIE保存在客戶端,SESSION依賴COOKIE進行傳輸,如果COOKIE被 禁用了,SESSION將不能繼續使用。
9)HTTP狀態中302、403、 500代碼含義?
300重定向、403服務器拒絕訪問、500服務器內部錯誤。
10)Linux 下建立壓縮包,解壓縮包的命令。
壓縮:gzip 、tar -cvfz、zip、bzip22、解壓:gunzip、tar -zxvf、unzip、bunzip2
---------------------
作者:EVKJ
來源:CSDN
原文:https://blog.csdn.net/evkj2013/article/details/72866713
版權聲明:本文為博主原創文章,轉載請附上博文鏈接!