php面試習(xí)題及答案2_第1頁(yè)
php面試習(xí)題及答案2_第2頁(yè)
php面試習(xí)題及答案2_第3頁(yè)
php面試習(xí)題及答案2_第4頁(yè)
php面試習(xí)題及答案2_第5頁(yè)
已閱讀5頁(yè),還剩14頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、php面試題及答案,經(jīng)典php筆試題與答案問(wèn)題1 考慮如下腳本。標(biāo)記處應(yīng)該添加什么代碼才能讓腳本輸出字符串 php?$alpha = 'abcdefghijklmnopqrstuvwxyz'$letters = array(15, 7, 15);foreach($letters as $val) /* 這里應(yīng)該加入什么 */>Aecho chr($val);Becho asc($val);Cecho substr($alpha, $val, 2);Decho $alpha$val;Eecho $alpha$val+12 以下哪一項(xiàng)不能把字符串$s1 和$s2 組成一個(gè)字符

2、串?A$s1 + $s2B”$s1$s2”C$s1.$s2Dimplode(”, array($s1,$s2)E以上都可以3 變 量 $email 的 值 是 字 符 串 , 以 下 哪 項(xiàng) 能 把 字 符 串 轉(zhuǎn) 化 成?Asubstr($email, strpos($email, “”);Bstrstr($email, “”);Cstrchr($email, “”);Dsubstr($email, strpos($email, “”)+1);Estrrpos($email, “”);4 給定一個(gè)用逗號(hào)分隔一組值的字符串,以下哪個(gè)函數(shù)能在僅調(diào)用一次的情況下就把每個(gè)獨(dú)立的值放入一個(gè)新創(chuàng)建的數(shù)組

3、?Astrstr()B不可能只調(diào)用一次就完成Cextract()Dexplode()Estrtok()5 要比較兩個(gè)字符串,以下那種方法最萬(wàn)能?A用 strpos 函數(shù)B用=操作符C用 strcasecmp()D用 strcmp()6 以下哪個(gè) PCRE 正則表達(dá)式能匹配字符串 php|architect?A.*B|Cd3|d8Daz3|az9Ea-za-za-z|w97 以下哪些函數(shù)能用來(lái)驗(yàn)證字符串的完整性(三選)Amd5()Bsha1()Cstr_rot13()Dcrypt()Ecrc32()8 哪個(gè) PHP 函數(shù)與以下腳本在 UNIX 系統(tǒng)下執(zhí)行的效果近似?function my_fun

4、ct ($filename)$f = file_get_contents ($filename);return explode ("n", $f);>Afopen()Bfread()Cflock()Dsplit_string()Efile()9 基于指定的式樣(pattern)把一個(gè)字符串分隔開并放入數(shù)組,以下哪些函數(shù)能做到(雙選)Apreg_split()Bereg()Cstr_split()Dexplode()Echop()10以下腳本輸出什么?echo 'Testing ' . 1 + 2 . '45'>ATesting 1

5、245BTesting 345CTesting 1+245D245E什么都沒有11以下腳本輸出什么?$s = '12345'$s$s1 = '2'echo $s;>A12345B12245C22345D11345EArray12方框中的正則表達(dá)式能與以下哪些選項(xiàng)匹配(雙選)/.*123d/A*123B*_1234C*1234D_*1234E_*12313以下哪個(gè)比較將返回 true(雙選)A1top = 1Btop = 0Ctop = 0Da = aE123 = 12314如果用+操作符把一個(gè)字符串和一個(gè)整型數(shù)字相加,結(jié)果將怎樣?A解釋器輸出一個(gè)類型錯(cuò)誤B

6、字符串將被轉(zhuǎn)換成數(shù)字,再與整型數(shù)字相加C字符串將被丟棄,只保留整型數(shù)字D字符串和整型數(shù)字將連接成一個(gè)新字符串E整形數(shù)字將被丟棄,而保留字符串15考慮如下腳本。假設(shè) 能被訪問(wèn),腳本將輸出什么?$s = file_get_contents ("");strip_tags ($s, array ('p');echo count ($s);>A 的主頁(yè)的字符數(shù)B剔除 標(biāo)簽后的 主頁(yè)的字符數(shù)C1D0E剔除 以外的標(biāo)簽后的 主頁(yè)的字符數(shù)16哪個(gè)函數(shù)能不區(qū)分大小寫得對(duì)兩個(gè)字符串進(jìn)行二進(jìn)制比對(duì)?Astrcmp()Bstricmp()Cstrcase

7、cmp()Dstristr()E以上都不能17以下哪些函數(shù)能把字符串里存儲(chǔ)的二進(jìn)制數(shù)據(jù)轉(zhuǎn)化成十六進(jìn)制(雙選)Aencode_hex()Bpack()Chex2bin()Dbin2hex()Eprintf()18哪個(gè)函數(shù)能用來(lái)確保一個(gè)字符串的字符數(shù)總是大于一個(gè)指定值?答案:_19以下腳本輸出什么?$a = 'able osts indy'echo wordwrap ($a, 1, "c", false);>答案:_20以下腳本輸出什么?$x = 'apple'echo substr_replace ($x, 'x', 1,

8、 2);>AxBaxleCaxxleDapplexExapple答案1 substr 函數(shù)能夠勝任,但考慮到輸出三個(gè)字母就需要三次調(diào)用該函數(shù),所以排除此方法。那么$alpha$val和$alpha$val+1是僅有的兩個(gè)可能輸出題目要求的字符串的選項(xiàng)。因?yàn)?0 是數(shù)組的第一個(gè)索引,所以答案是 D。2 除了 A 以外的選項(xiàng)都能輸出題目要求的字符串。PHP 中,加號(hào)(+)不能把兩個(gè)字符串合并成一個(gè)。3 substr 函數(shù)返回字符串的一部分,而 strpos 函數(shù)擅長(zhǎng)從一個(gè)字符串中找出某個(gè)指定的子串。同時(shí)使用這兩個(gè)函數(shù)將滿足題目要求。注意,前一個(gè)函數(shù)從 0 開始索引,而后者不是,因此需要+1。

9、答案是 D。4 答案是 D。explode 函數(shù)使用一個(gè)字符串分隔另一個(gè)字符串,并把結(jié)果放入一個(gè)新建的數(shù)組。strtok 函數(shù)也可以做同樣的事,但需要多次調(diào)用。5 答案是 D。strcmp()提供了安全的字符串比較機(jī)制。注意,選項(xiàng) C 是錯(cuò)的,strcasecmp()不是一個(gè)“萬(wàn)能”函數(shù),因?yàn)樗粎^(qū)分大小寫。6 選項(xiàng)中沒有一個(gè)正則表達(dá)式能真正代表題目所給字符串的匹配方式,但是選項(xiàng) A 和 E仍然能勉強(qiáng)匹配。選項(xiàng) A 太普通了,它能夠匹配任何字符串,因此答案是 E。7 正確答案是 A,B 和 E。用 crypt()和 str_rot13()來(lái)驗(yàn)證一個(gè)字符串是否被改變,效率很低。crc32()比前

10、面兩個(gè)函數(shù)好些,如果能容忍一些小錯(cuò)誤的話,它是個(gè)不錯(cuò)的選擇。8 file 函數(shù)將文件的文本內(nèi)容讀入一個(gè)數(shù)組,每個(gè)元素是一行。因此答案 E 正確。也許你想知道為什么要把這樣一個(gè)題目放在講字符串的章節(jié)中,那是為了提醒你每一章的題目所包含的知識(shí)點(diǎn)并不是絕對(duì)嚴(yán)格區(qū)分開的,正如寫 PHP 腳本時(shí),file 函數(shù)不能脫離字符串函數(shù)單獨(dú)存在一樣。9 盡管條件不同,但 preg_split 和 explode 函數(shù)都能滿足題目要求。ereg()拿一個(gè)正則表達(dá)式匹配一個(gè)字符串;str_split()按固定長(zhǎng)度分隔字符串;而 chop()則是 rtrim()別名,用來(lái)移除字符串末尾處的空格。10本題考察你對(duì)字符串

11、操作及操作符優(yōu)先級(jí)的認(rèn)識(shí)。連接運(yùn)算符(.)的優(yōu)先級(jí)比加號(hào)(+)高。因此 PHP 解釋器實(shí)際執(zhí)行的運(yùn)算可以表示為(Testing . 1) + (2 . 45)。由于字符串test 1 不是數(shù)字,所以加號(hào)前面的運(yùn)算等于 0。加號(hào)后面的運(yùn)算等于 245,PHP 輸出的結(jié)果是 0+245,等于 245,所以答案是 D。11可以用訪問(wèn)數(shù)組元素的方式訪問(wèn)字符串中的字符,因此腳本只是把字符串中的第二個(gè)字符($s1)替換成了字符 2,最終將輸出 12245。答案是 B。12本題的要點(diǎn)是理解這個(gè)正則表達(dá)式的含義從左往右,首先是零個(gè)或多個(gè)任意字符(.*),跟著是一個(gè)星號(hào)(*),然后是 123,最后是一個(gè)數(shù)字。因

12、此答案是 C 和 D。13B 和 E 正確。選項(xiàng) B 中,在比較時(shí),字符串 top 等同于數(shù)字 0。=操作符不比對(duì)數(shù)據(jù)類型,所以將返回 true。答案 E 中,字符串 123 等同于數(shù)字 123,比較將返回 true。14字符串將被轉(zhuǎn)換成數(shù)字(如果無(wú)法發(fā)生轉(zhuǎn)換就是 0),然后與整型數(shù)字相加。答案是 B。15代碼的本意是剔除 主頁(yè)上除了 p 以外的的所有 HTML 標(biāo)簽??蓪?shí)際上,在代碼的最后一行使用了 count 函數(shù),它統(tǒng)計(jì)變量中的元素?cái)?shù)量,而不是字符串中的字符數(shù)。由于字符串是標(biāo)量,對(duì)字符串使用 count 函數(shù)將永遠(yuǎn)返回 1。答案是 C。16題目其實(shí)就是在描述 strcasecmp 函數(shù)的

13、作用,因此答案是 C。17正確答案是 B 和 D。pack 函數(shù)能對(duì)二進(jìn)制數(shù)據(jù)進(jìn)行復(fù)雜的格式化,包括將字符串中的字符轉(zhuǎn)化成十六進(jìn)制表示。bin2hex 函數(shù)也有同樣的轉(zhuǎn)化功能。注意,printf()能將整數(shù)轉(zhuǎn)化成十六進(jìn)制數(shù),但無(wú)法轉(zhuǎn)化字符串。18這是在說(shuō) str_pad 函數(shù),它可以把字符串填充到指定長(zhǎng)度。19腳本將輸出 ablecostscindy。wordwrap 函數(shù)通常用來(lái)把字符串切割成指定長(zhǎng)度。然而在本題中,長(zhǎng)度被設(shè)置為 1,因此函數(shù)將從空格處切割(第四個(gè)參數(shù)被設(shè)置為 false,因此函數(shù)不會(huì)從單詞的中間進(jìn)行切割)。填充字符串是 c,等于把每個(gè)空格都換成了 c。20substr_re

14、place 函數(shù)是用一個(gè)指定字符串替換原字符串中的某個(gè)部分,因此腳本輸出axle,答案是 B。 文件操作你可能覺得PHP的文件操作功能并不怎樣,但實(shí)際上它對(duì)開發(fā)者來(lái)說(shuō)非常有用。即使你是做網(wǎng)站開發(fā)的,學(xué)會(huì)相關(guān)技能也能讓你如虎添翼。多虧了流包裝器(stream wrappers,將在第十章詳細(xì)介紹),PHP才能夠打開并讀取遠(yuǎn)程文件,讓在本地使用第三方網(wǎng)站的內(nèi)容變得可能。站在更底層的角度,文件輸入/輸出能完成多種任務(wù)??梢杂盟x取預(yù)制文件的內(nèi)容,比如第三方提供的內(nèi)容;或者通過(guò)PHP腳本讓瀏覽器打開一個(gè)二進(jìn)制文件,使得你能更切實(shí)的控制它。無(wú)論如何,本章不僅考驗(yàn)?zāi)愦蜷_、關(guān)閉和讀取文件的能力,還

15、考查多進(jìn)程下進(jìn)行文件操作的基礎(chǔ)知識(shí)例如文件鎖。php面試題及答案,經(jīng)典php筆試題與答案1 函數(shù)_能讀取文本文件中的一行。讀取二進(jìn)制文件或者其他文件時(shí),應(yīng)當(dāng)使用_函數(shù)。Afgets(), fseek()Bfread(), fgets()Cfputs(), fgets()Dfgets(), fread()Efread(), fseek()2 文件指針能在PHP腳本結(jié)束時(shí)自動(dòng)關(guān)閉,但你也可以用_函數(shù)來(lái)關(guān)閉。答案:_3 考慮如下PHP腳本,它一行一行的讀取并顯示某文本文件的內(nèi)容。在問(wèn)號(hào)處填入什么才能使腳本正常運(yùn)作?$file = fopen("test", "r&quo

16、t;);while(!feof($file) echo ;fclose($file);>Afile_get_contents($file)Bfile($file)Cread_file($file)Dfgets($file)Efread($file)4 以下哪種方法能保證鎖在任何競(jìng)爭(zhēng)情況下都安全?A用flock()鎖住指定文件B用fopen()在系統(tǒng)的臨時(shí)文件夾里打開文件C用tempnam()創(chuàng)建一個(gè)臨時(shí)文件D用mkdir()創(chuàng)建一個(gè)文件夾來(lái)當(dāng)E用tmpfile()創(chuàng)建一個(gè)臨時(shí)文件5以下哪個(gè)函數(shù)能夠獲得文件的全部?jī)?nèi)容,并能夠用在表達(dá)式中(雙選)Afile_get_contents()Bfg

17、ets()Cfopen()Dfile()Ereadfile()6 在不把文件內(nèi)容預(yù)加載到變量中的前提下,如何解析一個(gè)以特殊格式格式化過(guò)的多行文件?A用file()函數(shù)把它分割放入數(shù)組B用sscanf()C用fscanf()D用fgets()E用fnmatch()7考慮如下腳本,最后文件myfile.txt的內(nèi)容是什么?$array = '09ABCDEFGHIJKLMNOPQRSTUVWXYZ'$f = fopen ("myfile.txt", "r");for ($i = 0; $i < 50; $i+) fwrite ($f,

18、$arrayrand(0, strlen ($array) - 1);>A什么都沒有,因?yàn)?array實(shí)際上是一個(gè)字符串,而不是數(shù)組B49個(gè)隨機(jī)字符C50個(gè)隨機(jī)字符D41個(gè)隨機(jī)字符E什么都沒有,或者文件不存在,腳本輸出一個(gè)錯(cuò)誤8函數(shù)delete是做什么的?A刪除文件B刪除文件夾C釋放變量D移除數(shù)據(jù)庫(kù)記錄E沒有這個(gè)函數(shù)!9考慮如下腳本,哪個(gè)PHP函數(shù)和它的功能最接近?function my_funct ($file_name, $data)$f = fopen ($file_name, 'w');fwrite ($f, $data);fclose ($f);>Afil

19、e_get_contents()Bfile_put_contents()C沒有這樣的函數(shù)Dfile()Efputs()10如果你的腳本無(wú)法正確識(shí)別一個(gè)存儲(chǔ)于另一個(gè)平臺(tái)上的文件的行結(jié)尾,你該怎么辦?A改變auto_detect_line_ending的設(shè)置B用正則表達(dá)式偵測(cè)行的最后一個(gè)字母C用fpos()D用ftok()E每次讀取一個(gè)字符11如果想要可讀可寫得打開一個(gè)文件,該給fopen()傳什么參數(shù)(雙選)AwBrCaD+12能夠讀寫常規(guī)文件中的二進(jìn)制數(shù)據(jù)的函數(shù)是_,該函數(shù)返回的資源能被fgets()使用。答案:_13以下哪些函數(shù)能讀取文件的全部?jī)?nèi)容(三選)Afgets()Bfile_get_

20、contents()Cfread()Dreadfile()Efile()14哪個(gè)函數(shù)能夠往文本文件中寫入一個(gè)字符串?答案:_15考慮如下腳本。運(yùn)行時(shí),盡管文件test.txt已經(jīng)被用unlink()函數(shù)刪除,腳本仍然輸出1,1。在腳本的最后添加什么函數(shù)才能解決這個(gè)問(wèn)題?$f = fopen ("test.txt", "w");fwrite ($f, "test");fclose ($f);echo (int) file_exists("test.txt") . ', 'unlink ("c

21、:test.txt");echo (int) file_exists ("test.txt");>Aclearstatcache()Bfflush()Cob_flush()Dtouch()E以上都不對(duì)16函數(shù)_能判斷一個(gè)文件是否可寫。答案:_17以下哪個(gè)選項(xiàng)能將文件指針移到開頭?Areset()Bfseek(-1)Cfseek(0, SEEK_END)Dfseek(0, SEEK_SET)Efseek(0, SEEK_CUR)18stat()和fstat()有什么區(qū)別?Astat()基于文件指針工作,fstat()基于路徑工作Bfstat()基于文件指針工作

22、,stat()基于路徑工作Cfstat()不能處理文件Dstat()不能處理文件Efstat()是stat()的別名19以下哪個(gè)選項(xiàng)準(zhǔn)確的描述出了方框中的腳本的作用?echo number_format (disk_free_space ('c:') /disk_total_space('c:') * 100, 2) . '%'>A計(jì)算Windows系統(tǒng)C盤的剩余磁盤空間大小B輸出一個(gè)表示C盤剩余空間所占比例的兩位小數(shù)C輸出C盤剩余容量的byte數(shù)D計(jì)算C盤總?cè)萘颗c剩余空間的比率E以上都不對(duì)20假設(shè)image.jpg存在并能夠被PHP讀取,

23、調(diào)用以下腳本時(shí),瀏覽器上顯示什么?header ("Content-type: image/jpeg");>readfile ("image.jpg");>A一張JPEG圖片B一個(gè)二進(jìn)制文件C下載一個(gè)二進(jìn)制文件D下載一張JPEG圖片E一張殘破的圖片答案1 fgets函數(shù)主要用來(lái)從文本文件中讀取一行,當(dāng)然你也可以指定每次讀取的最大長(zhǎng)度。fread函數(shù)主要用來(lái)讀取二進(jìn)制數(shù)據(jù)。答案是D。2 函數(shù)fclose能關(guān)閉文件指針。3 fgets函數(shù)能從文件中讀取單獨(dú)一行。因此答案是D。4 正確答案是D。這題很難,而且在實(shí)踐中不大可能會(huì)碰到這樣的問(wèn)題但這不正

24、是你讀這本書的原因嗎!你必須記住,flock()使用一種“協(xié)議”鎖定機(jī)制,即所有其他訪問(wèn)此文件的進(jìn)程也必須要使用flock()。如果某個(gè)進(jìn)程沒有這么做,競(jìng)爭(zhēng)就會(huì)產(chǎn)生,鎖就不安全。用mkdir創(chuàng)建一個(gè)文件夾能保證任何時(shí)刻只有一個(gè)進(jìn)程處理能處理某文件,即保證操作的原子性。因此,你可以創(chuàng)建一個(gè)臨時(shí)文件夾并“護(hù)”住它,直到I/O操作完成。5 只有file_get_contents和file函數(shù)返回文件的全部?jī)?nèi)容,因此答案是A和D。readfile函數(shù)也能讀取文件的全部?jī)?nèi)容,但它直接把內(nèi)容送入了輸出緩存,因此不能用在表達(dá)式中。6 fscanf函數(shù)能根據(jù)指定格式解析文件內(nèi)容,因此答案是C。sscanf函數(shù)

25、只能用來(lái)操作字符串。7 答案是E。注意,文件被以r模式打開,即只讀模式。因此,如果文件不存在,PHP將輸出一個(gè)錯(cuò)誤來(lái)指出沒有找到文件。如果文件存在,fopen()將被成功調(diào)用,但由于是以只讀方式打開,fwrite()會(huì)失敗。如果我們用w代替r,腳本就能正常運(yùn)行,并且myfile.txt內(nèi)將有50個(gè)隨機(jī)字符(記住,可以像訪問(wèn)數(shù)組那樣使用索引來(lái)訪問(wèn)字符串)。8 答案是E。PHP里沒有叫delete()的函數(shù)。刪除文件用unlink(),刪除文件夾用rmdir(),數(shù)據(jù)庫(kù)記錄用SQL語(yǔ)句刪除,釋放變量用unset()。9 腳本實(shí)現(xiàn)的功能與file_put_contents()最接近,但這個(gè)函數(shù)直到PHP5才被引入,因此答案是C。10PHP4.3.0開始,php.ini引入了auto_detect_line_endings設(shè)置,系統(tǒng)在保存文本文件時(shí)能夠自動(dòng)偵測(cè)行結(jié)束符號(hào)的類型,因此答案是A。11要可讀可寫的打開文件,你必須使用r+模式,因此答案是B和D。12這是在說(shuō)fopen()函數(shù)。13正確答案是B,D和E。file,readfile和file_get_contents都能讀取文件的全部?jī)?nèi)容。14fwrite()和fputs()兩

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論