- 相關(guān)推薦
2017年初級(jí)PHP程序員筆試題
即將面臨畢業(yè)的準(zhǔn)畢業(yè)生們是不是在為工作發(fā)愁了?下面是百分網(wǎng)小編精心為大家整理的2017年初級(jí)PHP程序員筆試題,希望對(duì)大家有幫助,更多內(nèi)容請(qǐng)關(guān)注應(yīng)屆畢業(yè)生網(wǎng)!
一、基礎(chǔ)及程序題(建議使用你擅長(zhǎng)的語言:C/C++、PHP、Java)
1.寫一個(gè)排序算法,可以是冒泡排序或者是快速排序,假設(shè)待排序?qū)ο笫且粋(gè)維數(shù)組。(提示:不能使用系統(tǒng)已有函數(shù),另外請(qǐng)仔細(xì)回憶以前學(xué)習(xí)過的
基礎(chǔ)知識(shí))
2.實(shí)現(xiàn)一個(gè)字符串截取的函數(shù),類似于substr,必須能夠截取中文這種多字節(jié)編碼。假設(shè)每個(gè)中文也是一個(gè)字符,普通的數(shù)字、符號(hào)、字母也是一個(gè)字
符。(提示:GB編碼的中文字符高位范圍是 x81-xFE )
3.寫一個(gè)遍歷指定目錄下所有子目錄和子文件的函數(shù)(提示:可以使用遞歸的方法)
4.寫出匹配郵箱地址和URL的兩個(gè)正則表達(dá)式。類似下面的:
郵箱地址:user_name.first@example.com.cn /
URL地址:http://www.example.com.cn/user_profile.php?uid=1
(提示:使用標(biāo)準(zhǔn)的正則表達(dá)式,就是PHP中preg_* 類的正則處理函數(shù)能夠解析的正則)
二、數(shù)據(jù)庫技術(shù)題
1.寫出三種以上MySQL數(shù)據(jù)庫存儲(chǔ)引擎的名稱(提示:不區(qū)分大小寫)
2.說出你所知道的三種以上開源數(shù)據(jù)庫的名稱(提示:想想目前國(guó)外流行的開源數(shù)據(jù)庫)
3.MySQL數(shù)據(jù)庫中的字段類型varchar和char的主要區(qū)別是什么?那種字段的查找效率要高,為什么?
4.說出MySQL 4.和MySQL 4.1版本的最主要的兩個(gè)區(qū)別。如果你使用過MySQL 5,請(qǐng)說說MySQL 5跟MySQL 4的主要區(qū)別。(后半題選作)
5.MySQL數(shù)據(jù)庫基本的三個(gè)優(yōu)化法則是什么?(提示:從服務(wù)配置、應(yīng)用、開發(fā)角度考慮)
三、綜合技術(shù)題
1.請(qǐng)使用JavaScript寫出三種產(chǎn)生一個(gè)Image 標(biāo)簽的方法(提示:從方法、對(duì)象、HTML角度考慮)
2.請(qǐng)使用CSS樣式,描述兩種方法在當(dāng)前列中只顯示一個(gè)div對(duì)象
3.請(qǐng)描述出兩點(diǎn)以上XHTML和HTML最顯著的區(qū)別
4.出五種以上你使用過的PHP的擴(kuò)展的名稱(提示:常用的PHP擴(kuò)展)
5.了解MVC模式嗎?請(qǐng)寫出三種以上目前PHP流行的MVC框架名稱(不區(qū)分大小寫)ThinkPHP QeePHP YiiPHP
6.寫出15個(gè)以上你所知道的常用的Linux命令和它的功能
7.使用過Vim編輯器嗎?如果使用過,如何在vim里切分多個(gè)可視化窗口,包括橫排和縱排。(本題選作)
8.說說Linux下的find命令和grep命令的區(qū)別(本題選作)
9.請(qǐng)描述出七層網(wǎng)絡(luò)模型的名稱,由下到上(可以使用中文描述)
1.說說下面這些這些協(xié)議的全稱和中文解釋(提示:都是工作在應(yīng)用層)SMTP、POP3、HTTP、FTP、DNS
11.使用過Memcache緩存嗎,如果使用過,能夠簡(jiǎn)單的描述一下它的工作原理嗎?(本題選作)
12.請(qǐng)大致的說說Session的工作原理。(提示:與Cookie有相應(yīng)的關(guān)系)
13.說說你所了解的搜索引擎包含那些技術(shù)?(本題選作)
四、項(xiàng)目及設(shè)計(jì)題
1.一個(gè)Web開發(fā)團(tuán)隊(duì)開發(fā)中,大致說說你所了解的所有成員的分工合作情況
2.說說你做過的最得意的項(xiàng)目或者個(gè)人開發(fā)作品(可以是個(gè)人作品,也可以是合作項(xiàng)目)
3.假設(shè)給你5臺(tái)服務(wù)器,請(qǐng)大致的描述一下,如何使用你所熟悉的開源軟件,搭建一個(gè)日PV 3萬左右的中型網(wǎng)站
PHP程序員筆試題 (參考答案)
五、基礎(chǔ)及程序題(建議使用你擅長(zhǎng)的語言:C/C++、PHP、Java)
5.寫一個(gè)排序算法,可以是冒泡排序或者是快速排序,假設(shè)待排序?qū)ο笫且粋(gè)維數(shù)組。(提示:不能使用系統(tǒng)已有函數(shù),另外請(qǐng)仔細(xì)回憶以前學(xué)習(xí)過的
基礎(chǔ)知識(shí))
//冒泡排序(數(shù)組排序)
function bubble_sort($array)
{
$count = count($array);
if ($count <= ) return false;
for($i=; $i<$count; $i++){
for($j=$count-1; $j>$i; $j--){
if ($array[$j] < $array[$j-1]){
$tmp = $array[$j];
$array[$j] = $array[$j-1];
$array[$j-1] = $tmp;
}
}
}
return $array;
}
//快速排序(數(shù)組排序)
function quicksort($array) {
if (count($array) <= 1) return $array;
$key = $array[];
$left_arr = array();
$right_arr = array();
for ($i=1; $i
if ($array[$i] <= $key)
$left_arr[] = $array[$i];
else
$right_arr[] = $array[$i];
}
$left_arr = quicksort($left_arr);
$right_arr = quicksort($right_arr);
return array_merge($left_arr, array($key), $right_arr);
}
6.實(shí)現(xiàn)一個(gè)字符串截取的函數(shù),類似于substr,必須能夠截取中文這種多字節(jié)編碼。假設(shè)每個(gè)中文也是一個(gè)字符,普通的數(shù)字、符號(hào)、字母也是一個(gè)字
符。(提示:GB編碼的中文字符高位范圍是 x81-xFE )
function GBSubstr($str, $len){
$count = ;
for($i=; $i
if($count == $len) break;
if(preg_match("/[/x8-/xff]/", substr($str, $i, 1))) ++$i;
++$count;
}
return substr($str, , $i);
}
function GBSubstr2($src, $start=, $length=){
$suffix="";
$len = strlen($src);
if ( $len <= $length ) return $src;
$cut_length = ;
for( $idx = ; $idx<$length; $idx++){
$char_value = ord($src[$idx]);
if ( $char_value < x8 || ( $char_value & x4 ) )
$cut_length++;
else
$cut_length = $cut_length + 3;
}
$curstr = substr($src, , $cut_length) ;
preg_match('/^([/x-/x7f]|.{3})*/', $curstr, $result);
return $result[];
}
function CSubstr($str, $start=, $length, $charset="gbk", $suffix=false){
if(function_exists("mb_substr")){
return mb_substr($str, $start, $length, $charset);
}
$re['utf-8'] = "/[/x1-/x7f]|[/xc2-/xdf][/x8-/xbf]|[/xe-/xef][/x8-/xbf]{2}|[/xf-/xff][/x8-/xbf]{3}/";
$re['gb2312'] = "/[/x1-/x7f]|[/xb-/xf7][/xa-/xfe]/";
$re['gbk'] = "/[/x1-/x7f]|[/x81-/xfe][/x4-/xfe]/";
$re['big5'] = "/[/x1-/x7f]|[/x81-/xfe]([/x4-/x7e]|/xa1-/xfe])/";
preg_match_all($re[$charset], $str, $match);
$slice = join("", array_slice($match[], $start, $length));
if($suffix) {
return $slice ."…";
}
return $slice;
}
7.寫一個(gè)遍歷指定目錄下所有子目錄和子文件的函數(shù)(提示:可以使用遞歸的方法)
function dir_all ( $path ) {
$handler = opendir($path);
while (false!==($tmp = readdir($handler))) {
if(is_dir( "$path/$tmp" )) {
if ($tmp=="." | $tmp=="..") continue;
echo $tmp."
/n";
dir_all ("$path/$tmp");
} else {
echo $tmp ."
/n";
}
}
}
8.寫出匹配郵箱地址和URL的兩個(gè)正則表達(dá)式。類似下面的:
郵箱地址:user_name.first@example.com.cn
URL地址:http://www.example.com.cn/user_profile.php?uid=1
(提示:使用標(biāo)準(zhǔn)的正則表達(dá)式,就是PHP中preg_* 類的正則處理函數(shù)能夠解析的正則)
郵箱://w+([-+.]/w+)*@/w+([-.]/w+)*/./w+([-.]/w+)*/
URL:/^http:////[/w]+/.[/w]+[/S]*/
六、數(shù)據(jù)庫技術(shù)題
6.寫出三種以上MySQL數(shù)據(jù)庫存儲(chǔ)引擎的名稱(提示:不區(qū)分大小寫)
MyISAM、InnoDB、BDB(Berkeley DB)、Merge、Memory(Heap)、Example、Federated、Archive、CSV、Blackhole、MaxDB 等等十幾個(gè)引擎
7.說出你所知道的三種以上開源數(shù)據(jù)庫的名稱(提示:想想目前國(guó)外流行的開源數(shù)據(jù)庫)
MySQL、SQLite、BDB(Berkeley DB)、PostgreSQL、Firebird
8.MySQL數(shù)據(jù)庫中的字段類型varchar和char的主要區(qū)別是什么?那種字段的查找效率要高,為什么?
Varchar是變長(zhǎng),節(jié)省存儲(chǔ)空間,char是固定長(zhǎng)度。查找效率要char型快,因?yàn)関archar是非定長(zhǎng),必須先查找長(zhǎng)度,然后進(jìn)行數(shù)據(jù)的提取,比char定長(zhǎng)
類型多了一個(gè)步驟,所以效率低一些
9.說出MySQL 4.和MySQL 4.1版本的最主要的兩個(gè)區(qū)別。如果你使用過MySQL 5,請(qǐng)說說MySQL 5跟MySQL 4的主要區(qū)別。(后半題選作)
MySQL 4.1 主要是比MySQL 4.多了子查詢和字符編碼的支持兩個(gè)特點(diǎn)。
MySQL5增加的功能比MySQL4要更多,包括存儲(chǔ)過程、視圖、事務(wù)等等
1.MySQL數(shù)據(jù)庫基本的三個(gè)優(yōu)化法則是什么,除了增加硬件和帶寬?(提示:從服務(wù)配置、應(yīng)用、開發(fā)角度考慮)
(1)系統(tǒng)服務(wù)優(yōu)化,把MySQL的key_buffer、cache_buffer、query_cache等增加容量
(2)給所有經(jīng)常查詢的字段增加適當(dāng)?shù)乃饕?/p>
(3)優(yōu)化SQL語句,減少Ditinct、Group、Join等等語句的操作
七、綜合技術(shù)題
14.請(qǐng)使用JavaScript寫出三種產(chǎn)生一個(gè)Image 標(biāo)簽的方法(提示:從方法、對(duì)象、HTML角度考慮)
(1)var img = new Image();
(2)var img = document.createElement_xById(“image”)
(3)img.innerHTML = “
“
15.請(qǐng)使用CSS樣式,描述兩種方法在當(dāng)前列中只顯示一個(gè)div對(duì)象
(1)
(2)
16.請(qǐng)描述出兩點(diǎn)以上XHTML和HTML最顯著的區(qū)別
(1)XHTML必須強(qiáng)制指定文檔類型DocType,HTML不需要
(2)XHTML所有標(biāo)簽必須閉合,HTML比較隨意
17.出五種以上你使用過的PHP的擴(kuò)展的名稱(提示:常用的PHP擴(kuò)展)
MB_Sring、Iconv、Curl、GD、SHM、libxml、socket、MySQL、PDO 等等
18.了解MVC模式嗎?請(qǐng)寫出三種以上目前PHP流行的MVC框架名稱(不區(qū)分大小寫)
FleaPHP、Zend Framework、CakePHP、Symfony、Plite、php.MVC、PHP on Trax、Smutty 等等
19.寫出1個(gè)以上你所知道的常用的Linux命令和它的功能
Ls 列目錄
Cp 復(fù)制
Rm 刪除
Mkdir 建立目錄
Cd 切換目錄
Ps 查看進(jìn)程
Top 查看機(jī)器使用情況
2.使用過Vim編輯器嗎?如果使用過,如何在vim里切分多個(gè)可視化窗口,包括橫排和縱排。(本題選作)
橫:split(sp)
縱:vsplit(vsp)
21.說說Linux下的find命令和grep命令的區(qū)別(本題選作)
Find:按照文件名查找
Grep:按照文件內(nèi)容查找
22.請(qǐng)描述出OSI七層網(wǎng)絡(luò)模型的名稱,由下到上(可以使用中文描述)
物理層、數(shù)據(jù)鏈路層、網(wǎng)絡(luò)層、傳輸層、會(huì)話層、表示層、應(yīng)用層
23.說說下面這些這些協(xié)議的全稱和中文解釋(提示:都是工作在應(yīng)用層)
SMTP、POP3、HTTP、FTP、DNS
SMTP (Simple Mail Transfer Protocol) 簡(jiǎn)單郵件傳輸協(xié)議
POP3 (Post Office Protocol 3) 郵局協(xié)議第3版
HTTP (Hypertext Transfer Protocol) 超文本傳輸協(xié)議
FTP (File Transfer Protocol)文件傳輸協(xié)議
DNS (Domain Name System and Domain Name Service protocol) 域名系統(tǒng)(服務(wù))協(xié)議
24.使用過Memcache緩存嗎,如果使用過,能夠簡(jiǎn)單的描述一下它的工作原理嗎?(本題選作)
Memcahce是把所有的數(shù)據(jù)保存在內(nèi)存當(dāng)中,采用hash表的方式,每條數(shù)據(jù)又key和value組成,每個(gè)key是獨(dú)一無二的,當(dāng)要訪問某個(gè)值的時(shí)候先按照找到
值,然后返回結(jié)果。Memcahce采用LRU算法來逐漸把過期數(shù)據(jù)清除掉。
25.請(qǐng)大致的說說Session的工作原理。(提示:與Cookie有相應(yīng)的關(guān)系)
參考這里:http://www.yuanma.org/data/26/1128/article_1872.htm
26.說說你所了解的搜索引擎包含那些技術(shù)?(本題選作)
爬蟲(采集)、切詞(分詞)、索引(存儲(chǔ))、查詢以及其他相關(guān)技術(shù)
八、項(xiàng)目及設(shè)計(jì)題
4.一個(gè)Web開發(fā)團(tuán)隊(duì)開發(fā)中,大致說說你所了解的所有成員的分工合作情況
PS: 自行判定
5.說說你做過的最得意的項(xiàng)目或者個(gè)人開發(fā)作品(可以是個(gè)人作品,也可以是合作項(xiàng)目)
PS: 自行判定
6.假設(shè)給你5臺(tái)服務(wù)器,請(qǐng)大致的描述一下,如何使用你所熟悉的開源軟件,搭建一個(gè)日PV 3萬左右的中型網(wǎng)站
PS:自行判定
參考結(jié)構(gòu):
3臺(tái)Web服務(wù)器,兩臺(tái)MySQL數(shù)據(jù)庫服務(wù)器,采用Master/Slave同步的方式減輕數(shù)據(jù)庫負(fù)載,Web服務(wù)器可以結(jié)合Memcahe緩存來減少負(fù)載,同時(shí)三臺(tái)Web服
務(wù)器內(nèi)容一致,可以采用DNS輪訓(xùn)的方式來進(jìn)行負(fù)載平衡
【初級(jí)PHP程序員筆試題】相關(guān)文章:
初級(jí)PHP程序員面試經(jīng)驗(yàn)分享06-08
PHP試題07-04
php程序員11-01
PHP中級(jí)程序員常見面試題有哪些06-01
php練習(xí)筆試題06-15
PHP考試題10-08
php面試題10-26
PHP面試試題精選07-25
2017經(jīng)典面試PHP試題05-24
PHP筆試試題07-18