国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > PHP > 正文

php 面試題

2019-11-10 18:42:04
字體:
供稿:網(wǎng)友

php面試題及答案,經(jīng)典php筆試題與答案

問題

1. 考慮如下腳本。標記處應(yīng)該添加什么代碼才能讓腳本輸出字符串 php?

$alpha = 'abcdefghijklmnopqrstuvwxyz';

$letters = array(15, 7, 15);

foreach($letters as $val) {/* 這里應(yīng)該加入什么 */

}

?>

A.echo chr($val);

B.echo asc($val);

C.echo substr($alpha, $val, 2);

D.echo $alpha{$val};

E.echo $alpha{$val+1}

2. 以下哪一項不能把字符串$s1 和$s2 組成一個字符串?

A.$s1 + $s2

B.”{$s1}{$s2}”

C.$s1.$s2

D.implode(”, array($s1,$s2))

E.以上都可以

3. 變 量 $email 的 值 是 字 符 串 user@example.com , 以 下 哪 項 能 把 字 符 串 轉(zhuǎn) 化 成

example.com?

A.substr($email, strpos($email, “@”));

B.strstr($email, “@”);

C.strchr($email, “@”);

D.substr($email, strpos($email, “@”)+1);

E.strrpos($email, “@”);

4. 給定一個用逗號分隔一組值的字符串,以下哪個函數(shù)能在僅調(diào)用一次的情況下就把每

個獨立的值放入一個新創(chuàng)建的數(shù)組?

A.strstr()

B.不可能只調(diào)用一次就完成

C.extract()

D.explode()

E.strtok()

5. 要比較兩個字符串,以下那種方法最萬能?

A.用 strpos 函數(shù)

B.用==操作符

C.用 strcasecmp()

D.用 strcmp()

6. 以下哪個 PCRE 正則表達式能匹配字符串 php|architect?

A..*

B.…|………

C./d{3}/|/d{8}

D.[az]{3}/|[az]{9}

E.[a-z][a-z][a-z]/|/w{9}

7. 以下哪些函數(shù)能用來驗證字符串的完整性?(三選)

A.md5()

B.sha1()

C.str_rot13()

D.crypt()

E.crc32()

8. 哪個 PHP 函數(shù)與以下腳本在 UNIX 系統(tǒng)下執(zhí)行的效果近似?

function my_funct ($filename)

{

$f = file_get_contents ($filename);

return explode ("/n", $f);

}

?>

A.fopen()

B.fread()

C.flock()

D.split_string()

E.file()

9. 基于指定的式樣(pattern)把一個字符串分隔開并放入數(shù)組,以下哪些函數(shù)能做到?(雙

選)

A.PReg_split()

B.ereg()

C.str_split()

D.explode()

E.chop()

10.以下腳本輸出什么?

echo 'Testing ' . 1 + 2 . '45';

?>

A.Testing 1245

B.Testing 345

C.Testing 1+245

D.245

E.什么都沒有

11.以下腳本輸出什么?

$s = '12345';

$s[$s[1]] = '2';

echo $s;

?>

A.12345

B.12245

C.22345

D.11345

E.Array

12.方框中的正則表達式能與以下哪些選項匹配?(雙選)

/.*/*123/d/

A.******123

B.*****_1234

C.******1234

D._*1234

E._*123

13.以下哪個比較將返回 true?(雙選)

A.’1top’ == ’1′

B.’top’ == 0

C.’top’ === 0

D.’a’ == a

E.123 == ’123′

14.如果用+操作符把一個字符串和一個整型數(shù)字相加,結(jié)果將怎樣?

A.解釋器輸出一個類型錯誤

B.字符串將被轉(zhuǎn)換成數(shù)字,再與整型數(shù)字相加

C.字符串將被丟棄,只保留整型數(shù)字

D.字符串和整型數(shù)字將連接成一個新字符串

E.整形數(shù)字將被丟棄,而保留字符串

15.考慮如下腳本。假設(shè) http://www.php.net 能被訪問,腳本將輸出什么?

$s = file_get_contents ("http://www.php.net");

strip_tags ($s, array ('p'));

echo count ($s);

?>

A.www.php.net 的主頁的字符數(shù)

B.剔除

 

標簽后的 www.php.net 主頁的字符數(shù)

C.1

D.0

E.剔除

 

以外的標簽后的 www.php.net 主頁的字符數(shù)

16.哪個函數(shù)能不區(qū)分大小寫得對兩個字符串進行二進制比對?

A.strcmp()

B.stricmp()

C.strcasecmp()

D.stristr()

E.以上都不能

17.以下哪些函數(shù)能把字符串里存儲的二進制數(shù)據(jù)轉(zhuǎn)化成十六進制?(雙選)

A.encode_hex()

B.pack()

C.hex2bin()

D.bin2hex()

E.printf()

18.哪個函數(shù)能用來確保一個字符串的字符數(shù)總是大于一個指定值?

答案:____________

19.以下腳本輸出什么?

$a = 'able osts indy';

echo Wordwrap ($a, 1, "c", false);

?>

答案:____________

20.以下腳本輸出什么?

$x = 'apple';

echo substr_replace ($x, 'x', 1, 2);

?>

A.x

B.a(chǎn)xle

C.a(chǎn)xxle

D.a(chǎn)pplex

E.xapple

答案

1. substr 函數(shù)能夠勝任,但考慮到輸出三個字母就需要三次調(diào)用該函數(shù),所以排除此方法。

那么$alpha{$val}和$alpha{$val+1}是僅有的兩個可能輸出題目要求的字符串的選項。因

為 0 是數(shù)組的第一個索引,所以答案是 D。

2. 除了 A 以外的選項都能輸出題目要求的字符串。PHP 中,加號(+)不能把兩個字符

串合并成一個。

3. substr 函數(shù)返回字符串的一部分,而 strpos 函數(shù)擅長從一個字符串中找出某個指定的子

串。同時使用這兩個函數(shù)將滿足題目要求。注意,前一個函數(shù)從 0 開始索引,而后者

不是,因此需要+1。答案是 D。

4. 答案是 D。explode 函數(shù)使用一個字符串分隔另一個字符串,并把結(jié)果放入一個新建的

數(shù)組。strtok 函數(shù)也可以做同樣的事,但需要多次調(diào)用。

5. 答案是 D。strcmp()提供了安全的字符串比較機制。注意,選項 C 是錯的,strcasecmp()

不是一個“萬能”函數(shù),因為它不區(qū)分大小寫。

6. 選項中沒有一個正則表達式能真正代表題目所給字符串的匹配方式,但是選項 A 和 E

仍然能勉強匹配。選項 A 太普通了,它能夠匹配任何字符串,因此答案是 E。

7. 正確答案是 A,B 和 E。用 crypt()和 str_rot13()來驗證一個字符串是否被改變,效率很

低。crc32()比前面兩個函數(shù)好些,如果能容忍一些小錯誤的話,它是個不錯的選擇。

8. file 函數(shù)將文件的文本內(nèi)容讀入一個數(shù)組,每個元素是一行。因此答案 E 正確。也許你

想知道為什么要把這樣一個題目放在講字符串的章節(jié)中,那是為了提醒你每一章的題

目所包含的知識點并不是絕對嚴格區(qū)分開的,正如寫 PHP 腳本時,file 函數(shù)不能脫離

字符串函數(shù)單獨存在一樣。

9. 盡管條件不同,但 preg_split 和 explode 函數(shù)都能滿足題目要求。ereg()拿一個正則表達

式匹配一個字符串;str_split()按固定長度分隔字符串;而 chop()則是 rtrim()別名,用來

移除字符串末尾處的空格。

10.本題考察你對字符串操作及操作符優(yōu)先級的認識。連接運算符(.)的優(yōu)先級比加號(+)

高。因此 PHP 解釋器實際執(zhí)行的運算可以表示為(‘Testing ‘ . 1) + (2 . ’45′)。由于字符串

test 1 不是數(shù)字,所以加號前面的運算等于 0。加號后面的運算等于 245,PHP 輸出的

結(jié)果是 0+245,等于 245,所以答案是 D。

11.可以用訪問數(shù)組元素的方式訪問字符串中的字符,因此腳本只是把字符串中的第二個

字符($s[1])替換成了字符 2,最終將輸出 12245。答案是 B。

12.本題的要點是理解這個正則表達式的含義——從左往右,首先是零個或多個任意字符

(.*),跟著是一個星號(/*),然后是 123,最后是一個數(shù)字。因此答案是 C 和 D。

13.B 和 E 正確。選項 B 中,在比較時,字符串 top 等同于數(shù)字 0。==操作符不比對數(shù)據(jù)

類型,所以將返回 true。答案 E 中,字符串 123 等同于數(shù)字 123,比較將返回 true。

14.字符串將被轉(zhuǎn)換成數(shù)字(如果無法發(fā)生轉(zhuǎn)換就是 0),然后與整型數(shù)字相加。答案是 B。

15.代碼的本意是剔除 www.php.net 主頁上除了 p 以外的的所有 HTML 標簽。可實際上,

在代碼的最后一行使用了 count 函數(shù),它統(tǒng)計變量中的元素數(shù)量,而不是字符串中的字

符數(shù)。由于字符串是標量,對字符串使用 count 函數(shù)將永遠返回 1。答案是 C。

16.題目其實就是在描述 strcasecmp 函數(shù)的作用,因此答案是 C。

17.正確答案是 B 和 D。pack 函數(shù)能對二進制數(shù)據(jù)進行復(fù)雜的格式化,包括將字符串中的

字符轉(zhuǎn)化成十六進制表示。bin2hex 函數(shù)也有同樣的轉(zhuǎn)化功能。注意,printf()能將整數(shù)

轉(zhuǎn)化成十六進制數(shù),但無法轉(zhuǎn)化字符串。

18.這是在說 str_pad 函數(shù),它可以把字符串填充到指定長度。

19.腳本將輸出 ablecostscindy。wordwrap 函數(shù)通常用來把字符串切割成指定長度。然而在

本題中,長度被設(shè)置為 1,因此函數(shù)將從空格處切割(第四個參數(shù)被設(shè)置為 false,因

此函數(shù)不會從單詞的中間進行切割)。填充字符串是 c,等于把每個空格都換成了 c。

20.substr_replace 函數(shù)是用一個指定字符串替換原字符串中的某個部分,因此腳本輸出

axle,答案是 B。

 

文件操作

你可能覺得PHP的文件操作功能并不怎樣,但實際上它對開發(fā)者來說非常有用。即使你

是做網(wǎng)站開發(fā)的,學(xué)會相關(guān)技能也能讓你如虎添翼。多虧了流包裝器(stream wrappers,將

在第十章詳細介紹),PHP才能夠打開并讀取遠程文件,讓在本地使用第三方網(wǎng)站的內(nèi)容變

得可能。

站在更底層的角度,文件輸入/輸出能完成多種任務(wù)。可以用他讀取預(yù)制文件的內(nèi)容,

比如第三方提供的內(nèi)容;或者通過PHP腳本讓瀏覽器打開一個二進制文件,使得你能更切實

的控制它。無論如何,本章不僅考驗?zāi)愦蜷_、關(guān)閉和讀取文件的能力,還考查多進程下進行

文件操作的基礎(chǔ)知識——例如文件鎖。

php面試題及答案,經(jīng)典php筆試題與答案

1. 函數(shù)______能讀取文本文件中的一行。讀取二進制文件或者其他文件時,應(yīng)當(dāng)使用

______函數(shù)。

A.fgets(), fseek()

B.fread(), fgets()

C.fputs(), fgets()

D.fgets(), fread()

E.fread(), fseek()

2. 文件指針能在PHP腳本結(jié)束時自動關(guān)閉,但你也可以用______函數(shù)來關(guān)閉。

答案:____________

3. 考慮如下PHP腳本,它一行一行的讀取并顯示某文本文件的內(nèi)容。在問號處填入什么才

能使腳本正常運作?

$file = fopen("test", "r");

while(!feof($file)) {

echo ????????????;

}

fclose($file);

?>

A.file_get_contents($file)

B.file($file)

C.read_file($file)

D.fgets($file)

E.fread($file)

4. 以下哪種方法能保證鎖在任何競爭情況下都安全?

A.用flock()鎖住指定文件

B.用fopen()在系統(tǒng)的臨時文件夾里打開文件

C.用tempnam()創(chuàng)建一個臨時文件

D.用mkdir()創(chuàng)建一個文件夾來當(dāng)

E.用tmpfile()創(chuàng)建一個臨時文件

5.以下哪個函數(shù)能夠獲得文件的全部內(nèi)容,并能夠用在表達式中?(雙選)

A.file_get_contents()

B.fgets()

C.fopen()

D.file()

E.readfile()

6. 在不把文件內(nèi)容預(yù)加載到變量中的前提下,如何解析一個以特殊格式格式化過的多行文

件?

A.用file()函數(shù)把它分割放入數(shù)組

B.用sscanf()

C.用fscanf()

D.用fgets()

E.用fnmatch()

7.考慮如下腳本,最后文件myfile.txt的內(nèi)容是什么?

$array = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ';

$f = fopen ("myfile.txt", "r");

for ($i = 0; $i < 50; $i++) {

fwrite ($f, $array[rand(0, strlen ($array) - 1)]);

}

?>

A.什么都沒有,因為$array實際上是一個字符串,而不是數(shù)組

B.49個隨機字符

C.50個隨機字符

D.41個隨機字符

E.什么都沒有,或者文件不存在,腳本輸出一個錯誤

8.函數(shù)delete是做什么的?

A.刪除文件

B.刪除文件夾

C.釋放變量

D.移除數(shù)據(jù)庫記錄

E.沒有這個函數(shù)!

9.考慮如下腳本,哪個PHP函數(shù)和它的功能最接近?

function my_funct ($file_name, $data)

{

$f = fopen ($file_name, 'w');

fwrite ($f, $data);

fclose ($f);

}

?>

A.file_get_contents()

B.file_put_contents()

C.沒有這樣的函數(shù)

D.file()

E.fputs()

10.如果你的腳本無法正確識別一個存儲于另一個平臺上的文件的行結(jié)尾,你該怎么辦?

A.改變auto_detect_line_ending的設(shè)置

B.用正則表達式偵測行的最后一個字母

C.用fpos()

D.用ftok()

E.每次讀取一個字符

11.如果想要可讀可寫得打開一個文件,該給fopen()傳什么參數(shù)?(雙選)

A.w

B.r

C.a(chǎn)

D.+

12.能夠讀寫常規(guī)文件中的二進制數(shù)據(jù)的函數(shù)是______,該函數(shù)返回的資源能被fgets()使用。

答案:__________

13.以下哪些函數(shù)能讀取文件的全部內(nèi)容?(三選)

A.fgets()

B.file_get_contents()

C.fread()

D.readfile()

E.file()

14.哪個函數(shù)能夠往文本文件中寫入一個字符串?

答案:____________

15.考慮如下腳本。運行時,盡管文件test.txt已經(jīng)被用unlink()函數(shù)刪除,腳本仍然輸出1,1。

在腳本的最后添加什么函數(shù)才能解決這個問題?

$f = fopen ("test.txt", "w");

fwrite ($f, "test");

fclose ($f);

echo (int) file_exists("test.txt") . ', ';

unlink ("c://test.txt");

echo (int) file_exists ("test.txt");

?>

A.clearstatcache()

B.fflush()

C.ob_flush()

D.touch()

E.以上都不對

16.函數(shù)______能判斷一個文件是否可寫。

答案:____________

17.以下哪個選項能將文件指針移到開頭?

A.reset()

B.fseek(-1)

C.fseek(0, SEEK_END)

D.fseek(0, SEEK_SET)

E.fseek(0, SEEK_CUR)

18.stat()和fstat()有什么區(qū)別?

A.stat()基于文件指針工作,fstat()基于路徑工作

B.fstat()基于文件指針工作,stat()基于路徑工作

C.fstat()不能處理文件

D.stat()不能處理文件

E.fstat()是stat()的別名

19.以下哪個選項準確的描述出了方框中的腳本的作用?

echo number_format (disk_free_space ('c://') /

disk_total_space('c://') * 100, 2) . '%';

?>

A.計算Windows系統(tǒng)C盤的剩余磁盤空間大小

B.輸出一個表示C盤剩余空間所占比例的兩位小數(shù)

C.輸出C盤剩余容量的byte數(shù)

D.計算C盤總?cè)萘颗c剩余空間的比率

E.以上都不對

20.假設(shè)image.jpg存在并能夠被PHP讀取,調(diào)用以下腳本時,瀏覽器上顯示什么?

header ("Content-type: image/jpeg");

?>

readfile ("image.jpg");

?>

A.一張JPEG圖片

B.一個二進制文件

C.下載一個二進制文件

D.下載一張JPEG圖片

E.一張殘破的圖片

答案

1. fgets函數(shù)主要用來從文本文件中讀取一行,當(dāng)然你也可以指定每次讀取的最大長度。

fread函數(shù)主要用來讀取二進制數(shù)據(jù)。答案是D。

2. 函數(shù)fclose能關(guān)閉文件指針。

3. fgets函數(shù)能從文件中讀取單獨一行。因此答案是D。

4. 正確答案是D。這題很難,而且在實踐中不大可能會碰到這樣的問題——但這不正是你

讀這本書的原因嗎?!你必須記住,flock()使用一種“協(xié)議”鎖定機制,即所有其他訪

問此文件的進程也必須要使用flock()。如果某個進程沒有這么做,競爭就會產(chǎn)生,鎖就

不安全。用mkdir創(chuàng)建一個文件夾能保證任何時刻只有一個進程處理能處理某文件,即

保證操作的原子性。因此,你可以創(chuàng)建一個臨時文件夾并“護”住它,直到I/O操作完成。

5. 只有file_get_contents和file函數(shù)返回文件的全部內(nèi)容,因此答案是A和D。readfile函數(shù)也

能讀取文件的全部內(nèi)容,但它直接把內(nèi)容送入了輸出緩存,因此不能用在表達式中。

6. fscanf函數(shù)能根據(jù)指定格式解析文件內(nèi)容,因此答案是C。sscanf函數(shù)只能用來操作字符

串。

7. 答案是E。注意,文件被以r模式打開,即只讀模式。因此,如果文件不存在,PHP將輸

出一個錯誤來指出沒有找到文件。如果文件存在,fopen()將被成功調(diào)用,但由于是以只

讀方式打開,fwrite()會失敗。如果我們用w代替r,腳本就能正常運行,并且myfile.txt

內(nèi)將有50個隨機字符(記住,可以像訪問數(shù)組那樣使用索引來訪問字符串)。

8. 答案是E。PHP里沒有叫delete()的函數(shù)。刪除文件用unlink(),刪除文件夾用rmdir(),數(shù)

據(jù)庫記錄用SQL語句刪除,釋放變量用unset()。

9. 腳本實現(xiàn)的功能與file_put_contents()最接近,但這個函數(shù)直到PHP5才被引入,因此答案

是C。

10.PHP4.3.0開始,php.ini引入了auto_detect_line_endings設(shè)置,系統(tǒng)在保存文本文件時能夠

自動偵測行結(jié)束符號的類型,因此答案是A。

11.要可讀可寫的打開文件,你必須使用r+模式,因此答案是B和D。

12.這是在說fopen()函數(shù)。

13.正確答案是B,D和E。file,readfile和file_get_contents都能讀取文件的全部內(nèi)容。

14.fwrite()和fputs()兩個函數(shù)在這里都可以,而后者其實是前者的別名。在PHP中,寫入二

進制數(shù)據(jù)和寫入字符串沒有區(qū)別。

15.PHP會緩存某些文件系統(tǒng)函數(shù)的返回值——包括file_exists(),這樣能提高腳本處理重復(fù)

操作時的效率。當(dāng)腳本里有大量刪除文件的操作時,緩存很容易就會過時,因此需要清

理緩存。答案是A。

16.這是在說is_writeable函數(shù),它返回一個表示文件是否可寫的布爾值。

17.正確答案是D。fseek()用來移動文件指針。SEEK_SET指出偏移量從文件開頭開始計算。

如果沒有特別指出,SEEK_SET就是fseek()的默認模式。注意,rewind函數(shù)等效于

fseek(0,SEEK_SET)。

18.答案是B。fstat函數(shù)通過已打開的文件指針取得文件信息,stat()獲取指定路徑的文件信

息。

19.正確答案是B。disk_free_space函數(shù)能確定指定設(shè)備上(本題中即Windows下的C盤)的

剩余磁盤空間(單位是byte),而disk_total_space()能確定設(shè)備的總?cè)萘俊烧呦喑?/p>

乘以百分率,最后用number_format()保留兩位小數(shù),腳本輸出的就是剩余磁盤空間所占

的比例。最后在加上百分號以防混淆。

20.答案是E。你注意到兩個代碼塊之間的空行了嗎?它將被輸出到瀏覽器上,使得整個圖

片的二進制數(shù)據(jù)出錯。因此瀏覽器將顯示一個破碎的圖片(或者是一條信息,指出圖片

出錯)。 譯者注:原文中兩個代碼塊之間并沒有空行,而在我添加了空行之后,也沒有

調(diào)試出答案中描述的情況。)

管理

日期與時間

從某一點上來看,幾乎所有的網(wǎng)站都需要處理日期與時間。假如你需要收集用戶的生

日,或者記錄某個特定事件的發(fā)生時間,PHP 的日期函數(shù)將很好的幫助你完成任務(wù)。

但是 PHP 的日期/時間管理功能并不完美。它基于 UNIX 時間戳運行,容易受到攻擊,

作為開發(fā)者,你必須謹慎處理可能遇到的惡意數(shù)據(jù)。

同時,在 Web 上進行日期管理是一件國際性的事務(wù)。你必須能依據(jù)時區(qū)、地區(qū)的不同

來顯示對應(yīng)的日期信息。


發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 绵竹市| 山东省| 东乡| 浪卡子县| 黎川县| 新宾| 建昌县| 临海市| 丰宁| 东海县| 黄陵县| 铅山县| 白玉县| 蓬莱市| 新田县| 水富县| 霍城县| 乌拉特中旗| 宁远县| 诏安县| 义乌市| 襄城县| 阳信县| 松江区| 名山县| 县级市| 上林县| 包头市| 平江县| 克山县| 吉隆县| 繁峙县| 北辰区| 河南省| 永登县| 蓬莱市| 日土县| 上犹县| 呼图壁县| 工布江达县| 南城县|