- php面試備考知識點(diǎn) 推薦度:
- 相關(guān)推薦
php面試的備考知識點(diǎn)
PHP獨特的語(yǔ)法混合了C、Java、Perl以及PHP自創(chuàng )的語(yǔ)法。下面是小編為大家整理的php面試的備考知識點(diǎn),歡迎參考~

一. 基本知識點(diǎn)
1.1 HTTP協(xié)議中幾個(gè)狀態(tài)碼的含義:503 500 401 403 404 200 301 302。。。
200 : 請求成功,請求的數據隨之返回。
301 : 永久性重定向。
302 : 暫時(shí)行重定向。
401 : 當前請求需要用戶(hù)驗證。
403 : 服務(wù)器拒絕執行請求,即沒(méi)有權限。
404 : 請求失敗,請求的數據在服務(wù)器上未發(fā)現。
500 : 服務(wù)器錯誤。一般服務(wù)器端程序執行錯誤。
503 : 服務(wù)器臨時(shí)維護或過(guò)載。這個(gè)狀態(tài)時(shí)臨時(shí)性的。
1.2 Include require include_once require_once 的區別.
處理失敗方式不同:
require 失敗時(shí)會(huì )產(chǎn)生一個(gè)致命級別錯誤,并停止程序運行。
include 失敗時(shí)只產(chǎn)生一個(gè)警告級別錯誤,程序繼續運行。
include_once/require_once和include/require 處理錯誤方式一樣,
唯一區別在于當所包含的文件代碼已經(jīng)存在時(shí)候,不在包含。
1.3 (MySQL)請寫(xiě)出數據類(lèi)型(int char varchar datetime text)的意思; 請問(wèn)varchar和char有什么區別;
int : 數值類(lèi)型
char : 固定長(cháng)度字符串類(lèi)型
varchar : 可變長(cháng)度字符串類(lèi)型
datetime : 時(shí)期時(shí)間類(lèi)型
text : 文本類(lèi)型
varchar和char有什么區別:
a. char 長(cháng)度是固定的,不管你存儲的數據是多少他都會(huì )都固定的長(cháng)度。
而varchar則處可變長(cháng)度但他要在總長(cháng)度上加1字符,這個(gè)用來(lái)存儲位置。
b. char 固定長(cháng)度,所以在處理速度上要比varchar快速很多,但是浪費存儲空間,
所以對存儲不大,但在速度上有要求的可以使用char類(lèi)型,反之可以用varchar類(lèi)型來(lái)實(shí)例。
1.4 error_reporting 等調試函數使用
error_reporting() 函數能夠在運行時(shí)設置PHP.ini中 error_reporting 指令。
所以可以再程序中隨時(shí)調節顯示的錯誤級別。
使用此函數時(shí) display_errors必須是打開(kāi)狀態(tài)。
1.5 寫(xiě)代碼來(lái)解決多進(jìn)程/線(xiàn)程同時(shí)讀寫(xiě)一個(gè)文件的問(wèn)題。
php是不支持多線(xiàn)程的,可以使用php的flock加鎖函數實(shí)現。
$fp = fopen("/tmp/lock.txt", "w+");
if (flock($fp, LOCK_EX)) { // 進(jìn)行排它型鎖定
fwrite($fp, "Write something here ");
flock($fp, LOCK_UN); // 釋放鎖定
} else {
echo "Couldn't lock the file !";
}
fclose($fp);
1.6 寫(xiě)一段上傳文件的代碼。
upload.html
Send this file:
upload.php
$uploads_dir = '/uploads';
foreach ($_FILES["error"] as $key => $error) {
if ($error == UPLOAD_ERR_OK) {
$tmp_name = $_FILES["tmp_name"][$key];
$name = $_FILES["name"][$key];
move_uploaded_file($tmp_name, "$uploads_dir/$name");
}
}
1.7 mysql 的存儲引擎,myisam和innodb的區別。
a. MyISAM類(lèi)型不支持事務(wù)處理等高級處理,而InnoDB類(lèi)型支持.
b. MyISAM類(lèi)型的表強調的是性能,其執行數度比InnoDB類(lèi)型更快.
c. InnoDB不支持FULLTEXT類(lèi)型的索引.
d. InnoDB 中不保存表的具體行數,也就是說(shuō),
執行select count(*) from table時(shí),InnoDB要掃描一遍整個(gè)表來(lái)計算有多少行,
但是MyISAM只要簡(jiǎn)單的讀出保存好的行數即可.
e. 對于A(yíng)UTO_INCREMENT類(lèi)型的字段,InnoDB中必須包含只有該字段的索引,但是在MyISAM表中,可以和其他字段一起建立聯(lián)合索引。
f. DELETE FROM table時(shí),InnoDB不會(huì )重新建立表,而是一行一行的刪除。
g. LOAD TABLE FROM MASTER操作對InnoDB是不起作用的,解決方法是首先把InnoDB表改成MyISAM表,導入數據后再改成InnoDB表,
但是對于使用的額外的InnoDB特性(例如外鍵)的表不適用.
h. MyISAM支持表鎖,InnoDB支持行鎖。
二. web 架構,安全,項目經(jīng)驗
2.1 MySQL數據庫作發(fā)布系統的存儲,一天五萬(wàn)條以上的增量,預計運維三年,怎么優(yōu)化?
a. 設計良好的數據庫結構,允許部分數據冗余,盡量避免join查詢(xún),提高效率。
b. 選擇合適的表字段數據類(lèi)型和存儲引擎,適當的添加索引。
c. mysql庫主從讀寫(xiě)分離。
d. 找規律分表,減少單表中的數據量提高查詢(xún)速度。
e。添加緩存機制,比如memcached,apc等。
f. 不經(jīng)常改動(dòng)的頁(yè)面,生成靜態(tài)頁(yè)面。
g. 書(shū)寫(xiě)高效率的SQL。比如 SELECT * FROM TABEL 改為 SELECT field_1, field_2, field_3 FROM TABLE.
2.2 對于大流量的網(wǎng)站,您采用什么樣的方法來(lái)解決各頁(yè)面訪(fǎng)問(wèn)量統計問(wèn)題
a. 確認服務(wù)器是否能支撐當前訪(fǎng)問(wèn)量。
b. 優(yōu)化數據庫訪(fǎng)問(wèn)。參考2.3
c. 禁止外部訪(fǎng)問(wèn)鏈接(盜鏈), 比如圖片盜鏈。
d. 控制文件下載。
e. 使用不同主機分流。
f. 使用瀏覽統計軟件,了解訪(fǎng)問(wèn)量,有針對性的進(jìn)行優(yōu)化。
2.3 寫(xiě)出一個(gè)正則表達式,過(guò)慮網(wǎng)頁(yè)上的所有js/VBS腳本(即把標記及其內容都去掉):(9)。
答:/<[^>].*?>.*?</>/si
2.4 用PHP打印出前一天的時(shí)間格式是2006-5-10 22:21:21
答:echo date('Y-m-d H:i:s', strtotime('-1 day'));
2.5 echo(),print(),print_r()的區別
答:echo是語(yǔ)言結構,無(wú)返回值;print功能和echo基本相同,不同的是print是函數,有返回值;print_r是遞歸打印,用于輸出數組對象
2.6 如何實(shí)現字符串翻轉?
答:.用strrev函數唄,不準用PHP內置的就自己寫(xiě):
[php] view plain copy
strrev($str)
{
$len=strlen($str);
$newstr = '';
for($i=$len;$i>=0;$i--)
{
$newstr .= $str{$i};
}
return $newstr;
}
2.7 實(shí)現中文字串截取無(wú)亂碼的方法。
答:mb_substr()
2.8 如何用php的環(huán)境變量得到一個(gè)網(wǎng)頁(yè)地址的內容?ip地址又要怎樣得到?
答:$_SERVSR[‘REQUEST_URI’] , $_SERVER[‘REMOTE_ADDR’]
2.9 求兩個(gè)日期的差數,例如2007-2-5 ~ 2007-3-6 的日期差數
答:(strtotime(‘2007-3-6’)-strtotime(‘2007-2-5’))/3600*24
2.10 如何通過(guò)JavaScript判斷一個(gè)窗口是否已經(jīng)被屏蔽
答:獲取open()的返回值,如果是null,就是屏蔽了
【php面試的備考知識點(diǎn)】相關(guān)文章:
php面試備考知識點(diǎn)08-04
php關(guān)于PHP上傳入門(mén)學(xué)習知識點(diǎn)07-20
php基礎知識點(diǎn)04-03
2017經(jīng)典面試PHP試題05-24
PHP面試常用知識02-19
php面試題05-18
PHP面試常見(jiàn)題型01-09
PHP面試試題精選07-25
PHP經(jīng)典面試題07-28