1、列出五種以上你使用過的PHP 的擴(kuò)展的名稱 (提示:常用的PHP擴(kuò)展 , 如 GD 擴(kuò)展)
PDO、mysql、sybase、oracle、memcache、zlib
2、寫一個(gè)函數(shù),用冒泡法實(shí)現(xiàn)排序,輸入參數(shù)為一個(gè)數(shù)組
function mysort($arr){
for($i=0;$i<strlen($arr);$i++)
{
for($j=$i;$j<strlen($arr);$j++)
{
if($arr[i]>$arr[j])
{
$temp = $arr[i];
$arr[i] = $arr[j];
$arr[j] = $temp;
}
}
}
}
3、請(qǐng)說明 在php.ini 中safe_mode 開啟之后對(duì)于PHP系統(tǒng)函數(shù)的影響
chmod() mkdir() touch() chown() chgrp() chdir() fopen() rmdir() copy() link()
exec()
chmod() 檢查被操作的文件或目錄是否與正在執(zhí)行的腳本有相同的 UID(所有者)。 另外,不能設(shè)置 SUID、SGID 和 sticky bits
mkdir() 檢查被操作的目錄是否與正在執(zhí)行的腳本有相同的 UID(所有者)。
touch() 檢查被操作的文件或目錄是否與正在執(zhí)行的腳本有相同的 UID(所有者)。 檢查被操作的目錄是否與正在執(zhí)行的腳本有相同的 UID(所有者)。
chown() 檢查被操作的文件或目錄是否與正在執(zhí)行的腳本有相同的 UID(所有者)。
chgrp() 檢查被操作的文件或目錄是否與正在執(zhí)行的腳本有相同的 UID(所有者)。
chdir() 檢查被操作的目錄是否與正在執(zhí)行的腳本有相同的 UID(所有者)。
fopen() 檢查被操作的目錄是否與正在執(zhí)行的腳本有相同的 UID(所有者)。
rmdir() 檢查被操作的目錄是否與正在執(zhí)行的腳本有相同的 UID(所有者)。
copy() 檢查被操作的文件或目錄是否與正在執(zhí)行的腳本有相同的 UID(所有者)。 檢查被操作的目錄是否與正在執(zhí)行的腳本有相同的 UID(所有者)。 (on source and target )
link() 檢查被操作的文件或目錄是否與正在執(zhí)行的腳本有相同的 UID(所有者)。 檢查被操作的目錄是否與正在執(zhí)行的腳本有相同的 UID(所有者)。 (注意:僅測(cè)試 target)
exec() 只能在 safe_mode_exec_dir 設(shè)置的目錄下進(jìn)行執(zhí)行操作?;谀承┰?,目前不能在可執(zhí)行對(duì)象的路徑中使用 ..。escapeshellcmd() 將被作用于此函數(shù)的參數(shù)上。
4、你用什么方法檢查PHP腳本的執(zhí)行效率(通常是腳本執(zhí)行時(shí)間)和數(shù)據(jù)庫(kù)SQL的效率(通常是數(shù)據(jù)庫(kù)Query時(shí)間),并定位和分析腳本執(zhí)行和數(shù)據(jù)庫(kù)查詢的瓶頸所在?
1.腳本執(zhí)行時(shí)間,啟用xdebug,使用WinCacheGrind分析。
2.?dāng)?shù)據(jù)庫(kù)查詢,mysql使用EXPLAIN分析查詢,啟用slow query log記錄慢查詢。
3, xdebug統(tǒng)計(jì)函數(shù)執(zhí)行次數(shù)和具體時(shí)間進(jìn)行分析。
4, 在線系統(tǒng)用strace跟蹤相關(guān)進(jìn)程的具體系統(tǒng)調(diào)用。
5、試簡(jiǎn)述php5 中 autoload 機(jī)制是如何自動(dòng)加載類的
當(dāng)PHP引擎試圖實(shí)例化一個(gè)未知類的操作時(shí),會(huì)調(diào)用__autoload()方法,在PHP出錯(cuò)失敗前有了最后一個(gè)機(jī)會(huì)加載所需的類。
因此,上面的這段代碼執(zhí)行時(shí),PHP引擎實(shí)際上替我們自動(dòng)執(zhí)行了一次__autoload方法,將User.class.php這個(gè)文件包含進(jìn)來。
在__autoload函數(shù)中拋出的異常不能被catch語(yǔ)句塊捕獲并導(dǎo)致致命錯(cuò)誤。