PHP面試常用知識
PHP基礎知識,新人必備,老人必會。如果你忘記了,就趕緊拾起來吧。PHP(外文名:PHP: Hypertext Preprocessor,中文名:“超文本預處理器”)是一種通用開源腳本語言。PHP面試常用知識有哪些?下面是相關的知識,歡迎閲讀。
1、php時間處理
a、獲取前一天 echo date(‘Y-m-d H:i:s’, strtotime(“-1 day”))
b、某個時間的前一天
$date = new DateTime(now());
$date->add(new DateInterval(P10D));
$date->sub(new DateInterval(PT1440M));
2、字符串翻轉 strrev
3、mysql關於時間的函數 now() month() year day dayofweek()
4、截取中文無亂碼的方法
5、客户端、服務器變量
$_SERVER[‘remote_addr’] $_SERVER[’SERVER_ADDR’]
5.1 是否為代理
5.2判斷是否為ajax請求
isset($_SERVER['HTTP_X_REQUESTED_WITH']) && $_SERVER['HTTP_X_REQUESTED_WITH']==='XMLHttpRequest';
6、session設置過期時間
session_set_cookie_params(24*3600);
7、常用排序函數
sort rsort ksort krsort natsort
8、字符串的.處理,常用數組相關
explode implode
9、常用的html標籤處理函數
htmlentities 標籤轉換為"等
html_entity_decode 轉換回來
addslashes
閲讀安全那一章節
9.2 入數據庫前的處理
mysql_real_escape_string();
10、內存相關函數
memory_get_usage()
memory_get_peak_usage()
memory_limit限制內存使用
11、獲取客户端ip,要考慮代理
if($_SERVER[‘http_x_forwarded_for’] != ‘’){
$clientIp = !empty($_SERVER[‘REMOTE_ADDR’]) ? $_SERVER[‘REMOTE_ADDR’] : !empty($_ENV[‘REMOTE_ADDR’]) ? $_ENV[‘REMOTE_ADDR’] : ‘unknown’;
}
12、驗證電子郵件
echo preg_match(‘/^[w-.]+@[w-.]+[.w+]+$/’, $email);
13、文件擴展名
parse_url PHP_URL_SCHEMAPHP_URL_HOSTPORTPATHQUERYFRAGEMENT
pathinfo basenameextensionfilenamedirname
basename 正則
14、strrchr(str, $delimiter)
HTTP常用知識點
15、http協議常用code
16、http1.1與http1.0的區別
增加了長連接以及複用鏈接的tcp技能,增加了host(虛擬), cache_control,
16.2 http請求頭信息
host,url,method,accept_language,content_length,user_agent,code,cache_control,tag,expire,server
17、enctype=‘multipart/form-data’
18、setcookie(name,value,expire,path,domain)
19、時區設置 date_default_timezone_set(‘Asia/shanghai’)
或者中修改_zone
20、查看的位置
phpinfo() | grep
21、slowlog在中設置
request_slowlog_timeout=1s
slowlog=/path/to/
22、魔術方法
__SET, __GET, __CALL, __toString, __construct, __destruct, __set, __isset, __unset, __autoload, __clone
23、static靜態綁定
24、安全模式對系統函數的影響
之所以有安全模式,是為了試圖去解決共享web服務器問題而產生的,避免注入腳本去執行腳本等。但即使禁止了php腳本,
攻擊人員仍可以使用perl腳本,所以從5.4版本起被廢除。
只要影響系統文件相關操作,會判斷文件的owner跟當前owner是否為同一個,為同一個則執行。
25、php中垃圾回收機制
首先變量超出自己的作用域會被自動回收內存,也可以使用unset主動釋放內存。一次web請求結束後,程序中對象佔用的內存也會被釋放掉。
26、為何對象支持foreach,原理是啥?
foreach一個對象,是因為對象實現了Iterator接口,或者子接口ArrayIterator。
foreach時實際調用被循環對象的相關方法實現的,接口方法有rewind,next,current,key,valid
27、安全寫一個文件
function write_file($filename, $content){
$file = fopen($filename, 'w+');
while(!flock($file, LOCK_EX)){
}
fwrite($file, $content);
fclose($file);//會釋放鎖
}