国产精品色无码视频,国产av毛片影院精品资源,亚洲人成网站77777·c0m,囯产av无码片毛片一级,夜夜操www99视频,美女白嫩胸交在线观看,亚洲a毛片性生活

薈聚奇文、博采眾長(zhǎng)、見(jiàn)賢思齊
當(dāng)前位置:公文素材庫(kù) > 公文素材 > 范文素材 > PHP程序員面試題目

PHP程序員面試題目

網(wǎng)站:公文素材庫(kù) | 時(shí)間:2019-05-29 11:42:55 | 移動(dòng)端:PHP程序員面試題目

PHP程序員面試題目

流行的php面試題及答案

1.在PHP中,當(dāng)前腳本的名稱(不包括路徑和查詢字符串)記錄在預(yù)定義變量(1)中;而鏈接到當(dāng)前頁(yè)面的URL記錄在預(yù)定義變量(2)中。答:echo$_SERVER["PHP_SELF"];echo$_SERVER["HTTP_REFERER"];2.執(zhí)行程序段將輸出(3)。答:0

3.在HTTP1.0中,狀態(tài)碼401的含義是(4);如果返回“找不到文件”的提示,則可用header函數(shù),其語(yǔ)句為(5)。答:(4)未授權(quán)(5)header("HTTP/1.0404NotFound");

4.數(shù)組函數(shù)arsort的作用是(6);語(yǔ)句error_reporting(2047)的作用是(7)。答:(6)對(duì)數(shù)組進(jìn)行逆向排序并保持索引關(guān)系(7)Allerrorsandwarnings5.寫(xiě)出一個(gè)正則表達(dá)式,過(guò)慮網(wǎng)頁(yè)上的所有JS/VBS腳本(即把標(biāo)記及其內(nèi)容都去掉):(9)。答:/].*?>.*?/si

6.以Apache模塊的方-yongan.com式安裝PHP,在文件http.conf中首先要用語(yǔ)句(10)動(dòng)態(tài)裝載PHP模塊,

然后再用語(yǔ)句(11)使得Apache把所有擴(kuò)展名為php的文件都作為PHP腳本處理。

答:(10)LoadModulephp5_module"D:/xampp/apache/bin/php5apache2.dll"

(11)AddTypeapplication/x-httpd-php-source.phpsAddTypeapplication/x-httpd-php.php.php5.php4.php3.phtml

7.語(yǔ)句include和require都能把另外一個(gè)文件包含到當(dāng)前文件中,它們的區(qū)別是(12);為了避免多次包含同一文件,可以用語(yǔ)句(13)來(lái)代替-global.com它們。

答:(12)發(fā)生異常時(shí)include產(chǎn)生警告require產(chǎn)生致命錯(cuò)誤(13)require_once()/include_once()

8.類的屬性可以序列化后保存到session中,從而以后可以恢復(fù)整個(gè)類,這要用到的函數(shù)是(14)。

答:serialize()/unserialize()9.一個(gè)函數(shù)的參數(shù)不能是對(duì)變量的引用,除非在php.ini中把(15)設(shè)為on.

答:allow_call_time_pass_reference

10.SQL中LEFTJOIN的含義是(16)。如果tbl_user記錄了學(xué)生的姓名(name)和學(xué)號(hào)(ID),

tbl_score記錄了學(xué)生(有的學(xué)生考試以后被開(kāi)除了,沒(méi)有其記錄)的學(xué)號(hào)(ID)和考試成績(jī)(score)以及考試科目(subject),要想打印出各個(gè)學(xué)生姓名及對(duì)應(yīng)的的各科總成績(jī),則可以用SQL語(yǔ)句(17)。

答:(16)自然左外連接(17)selectname,count(score)assum_scorefromtbl_userleftjointbl_scoreontbl_user.ID=tbl_score.IDgroupbytbl_user.ID

11..在PHP中,heredoc是一種特殊的字符串,它的結(jié)束標(biāo)志必須(18)。答:結(jié)束標(biāo)識(shí)符所在的行不能包含任何其它字符除";"

12.用PHP打印出前一天的時(shí)間格式是201*-5-1022:21:21答:echodate("Y-m-dH:i:s",strtotime("-1day"));13.echo(),print(),print_r()的區(qū)別

答:echo是語(yǔ)言結(jié)構(gòu),無(wú)返回值;print功能和echo基本相同,不同的是print是函數(shù),有返回值;print_r是遞歸打印,用于輸出數(shù)組對(duì)象14.如何實(shí)現(xiàn)字符串翻轉(zhuǎn)?

答:.用strrev函數(shù)唄,不準(zhǔn)用PHP內(nèi)置的就自己寫(xiě):

strrev($str){

$len=strlen($str);

$newstr="";

for($i=$len;$i>=0;$i--){

$newstr.=$str{$i};

}

return$newstr;}

15.實(shí)現(xiàn)中文字串截取無(wú)亂碼的方法。答:mb_substr()

16.使用php寫(xiě)一段簡(jiǎn)單查詢,查出所有姓名為“張三”的內(nèi)容并打印出來(lái)表名User

NameTelContentDate張三13333663366大專畢業(yè)201*-10-11張三13612312331本科畢業(yè)201*-10-15張四021-55665566中專畢業(yè)201*-10-15

答:SELECTName,Tel,Content,DateFROMUserWHEREName="張三"17.如何使用下面的類,并解釋下面什么意思?

classtest{

Get_test($num)

{$num=md5(md5($num)."En");return$num;}}

答:用法:

$get_test=newtest();

$result=$get_test->Get_test(2);

將$num變量進(jìn)行兩次md5后返回,第2次的md5中的參數(shù),在第一次md5($num)后多加了En

18.使用五種以上方式獲取一個(gè)文件的擴(kuò)展名

要求:dir/upload.image.jpg,找出.jpg或者jpg,答:使用五種以上方式獲取一個(gè)文件的擴(kuò)展名1)

get_ext1($file_name)

{returnstrrchr($file_name,".");}2)

get_ext2($file_name)

{returnsubstr($file_name,strrpos($file_name,"."));}3)

get_ext3($file_name){

returnarray_pop(explode(".",$file_name));}4)get_ext4($file_name){

$p=pathinfo($file_name);return$p["extension"];}5)

get_ext5($file_name)

{returnstrrev(substr(strrev($file_name),0,strpos(strrev($file_name),".")));}

19.如何修改SESSION的生存時(shí)間

這個(gè)函式庫(kù)讓你處理和顯示各式格式的圖檔,它的另一個(gè)常見(jiàn)用途是制作所圖檔。GD以外的另一個(gè)選擇是ImageMagick,但這個(gè)函式庫(kù)并不內(nèi)建于PHP之中,必須由系統(tǒng)管理員安裝在伺服器上

答:其實(shí)Session還提供了一個(gè)函數(shù)session_set_cookie_params();來(lái)設(shè)置Session的生存期的,該函數(shù)必須在session_start()函數(shù)調(diào)用之前調(diào)用:

<?php

//保存一天

$lifeTime=24*3600;

session_set_cookie_params($lifeTime);

session_start();

$_SESSION["admin"]=true;

?>

20.請(qǐng)寫(xiě)一個(gè)函數(shù),實(shí)現(xiàn)以下功能:字符串“open_door”轉(zhuǎn)換成

“OpenDoor”、”make_by_id”轉(zhuǎn)換成”MakeById”。30.請(qǐng)舉例說(shuō)明在你的開(kāi)發(fā)過(guò)程中用什么方法來(lái)加快頁(yè)面的加載速度

A.生成靜態(tài)HTML生成xml

C.可不用數(shù)據(jù)庫(kù)的盡量不用數(shù)據(jù)庫(kù)把變量參數(shù)存于文本.D.用ZEND加速答:$arr1=explode("_",$str);

//$arr2=array_walk($arr1,ucwords());$str=implode("",$arr1);returnucwords($str);}

$aa="open_door";echotest($aa);?>

21.如何用php的環(huán)境變量得到一個(gè)網(wǎng)頁(yè)地址的內(nèi)容?ip地址又要怎樣得到?答:$_SERVSR[‘REQUEST_URI’]$_SERVER[‘REMOTE_ADDR’]22.求兩個(gè)日期的差數(shù),例如201*-2-5~201*-3-6的日期差數(shù)

答:(strtotime(‘201*-3-6’)-strtotime(‘201*-2-5’))/3600*2423.表中有ABC三列,用SQL語(yǔ)句實(shí)現(xiàn):當(dāng)A列大于B列時(shí)選擇A列否則選擇B列,當(dāng)B列大于C列時(shí)選擇B列否則選擇C列。答:selectcasewhenA>BthenAelseBend,

casewhenB>CthenBelseCendFromtest

24.請(qǐng)簡(jiǎn)述項(xiàng)目中優(yōu)化sql語(yǔ)句執(zhí)行效率的方法,從哪些方面,sql語(yǔ)句性能如何分析?

1)選擇最有效率的表名順序(2)WHERE子句中的連接順序

(3)SELECT子句中避免使用‘*’(4)用Where子句替換HAVING子句(5)通過(guò)內(nèi)部函數(shù)提高SQL效率(6)避免在索引列上使用計(jì)算。(7)提高GROUPBY語(yǔ)句的效率,可以通過(guò)將不需要的記錄在GROUPBY之前過(guò)濾掉。

25.mysql_fetch_row()和mysql_fetch_array()有什么分別?

mysql_fetch_row()把數(shù)據(jù)庫(kù)的一列儲(chǔ)存在一個(gè)以零為基數(shù)的陣列中,第一欄在陣列的索引0,第二欄在索引1,如此類推。mysql_fetch_assoc()把數(shù)據(jù)庫(kù)的一列儲(chǔ)存在一個(gè)關(guān)聯(lián)陣列中,陣列的索引就是欄位名稱,例如我的數(shù)據(jù)庫(kù)查詢送回“first_name”、“l(fā)ast_name”、“email”三個(gè)欄位,陣列的索引便是“first_name”、“l(fā)ast_name”和“email”。mysql_fetch_array()可以同時(shí)送回mysql_fetch_row()和mysql_fetch_assoc()的值。26.下面的代碼用來(lái)做什么?請(qǐng)解釋。$date="08/26/201*";print

ereg_replace("([0-9]+)/([0-9]+)/([0-9]+)","\\\\2/\\\\1/\\\\3",$date);

這是把一個(gè)日期從MM/DD/YYYY的格式轉(zhuǎn)為DD/MM/YYYY格式。我的一個(gè)好朋友告訴我可以把這個(gè)正規(guī)表達(dá)式拆解為以下的語(yǔ)句,對(duì)于如此簡(jiǎn)單的表示是來(lái)說(shuō)其實(shí)無(wú)須拆解,純粹為了解說(shuō)的方便:

//對(duì)應(yīng)一個(gè)或更多0-9,后面緊隨一個(gè)斜號(hào)$regExpression="([0-9]+)/";//應(yīng)一個(gè)或更多0-9,后面緊隨另一個(gè)斜號(hào)$regExpression.="([0-9]+)/";//再次對(duì)應(yīng)一個(gè)或更多0-9$regExpression.="([0-9]+)";至于\\\\2/\\\\1/\\\\3則是用來(lái)對(duì)應(yīng)括號(hào),第一個(gè)括號(hào)對(duì)的是月份,27.GD函式庫(kù)用來(lái)做什么?

答:這個(gè)函式庫(kù)讓你處理和顯示各式格式的圖檔,它的另一個(gè)常見(jiàn)用途是制作所圖檔。GD以外的另一個(gè)選擇是ImageMagick,但這個(gè)函式庫(kù)并不內(nèi)建于PHP之中,必須由系統(tǒng)管理員安裝在伺服器上

28.請(qǐng)舉例說(shuō)明在你的開(kāi)發(fā)過(guò)程中用什么方法來(lái)加快頁(yè)面的加載速度

答:要用到服務(wù)器資源時(shí)才打開(kāi),及時(shí)關(guān)閉服務(wù)器資源,數(shù)據(jù)庫(kù)添加索引,頁(yè)面可生成靜態(tài),圖片等大文件單獨(dú)服務(wù)器。使用代碼優(yōu)化工具啦29.防止SQL注射漏洞一般用__addslashes___函數(shù)。30.PHP中傳值和傳引用、傳地址的區(qū)別是什么?

答:傳值是把實(shí)參的值賦值給行參那么對(duì)行參的修改,不會(huì)影響實(shí)參的值傳地址是傳值的一種特殊方式,只是他傳遞的是地址,不是普通的如int那么傳地址以后,實(shí)參和行參都指向同一個(gè)對(duì)象

31。如何通過(guò)javascript判斷一個(gè)窗口是否已經(jīng)被屏蔽答:獲取open()的返回值,如果是null,就是屏蔽了33.對(duì)于大流量的網(wǎng)站,您采用什么樣的方法來(lái)解決訪問(wèn)量問(wèn)題答:首先,確認(rèn)服務(wù)器硬件是否足夠支持當(dāng)前的流量其次,優(yōu)化數(shù)據(jù)庫(kù)訪問(wèn)。第三,禁止外部的盜鏈。第四,控制大文件的下載。

第五,使用不同主機(jī)分流主要流量第六,使用流量分析統(tǒng)計(jì)軟件

擴(kuò)展閱讀:PHP程序員面試題

PHP程序員面試題

1.在PHP中,當(dāng)前腳本的名稱(不包括路徑和查詢字符串)記錄在預(yù)定義變量(1)中;而鏈接到當(dāng)前頁(yè)面的的前一頁(yè)面URL記錄在預(yù)定義變量(2)中

2.執(zhí)行程序段將輸出__。

3.在HTTP1.0中,狀態(tài)碼401的含義是____;如果返回“找不到文件”的提示,則可用header函數(shù),其語(yǔ)句為_(kāi)___。

答:401表示未授權(quán);header("HTTP/1.0404NotFound");[見(jiàn)參考手冊(cè)》函數(shù)參考》HTTP函數(shù)》header]

4.數(shù)組函數(shù)arsort的作用是____;語(yǔ)句error_reporting(2047)的作用是____。

答:arsort:對(duì)數(shù)組進(jìn)行逆向排序并保持索引關(guān)系error_reporting(2047)的作用是:reportAllerrorsandwarnings5.寫(xiě)出一個(gè)正則表達(dá)式,過(guò)慮網(wǎng)頁(yè)上的所有JS/VBS腳本(即把script標(biāo)記及其內(nèi)容都去掉):

6.以Apache模塊的方式安裝PHP,在文件http.conf中首先要用語(yǔ)句____動(dòng)態(tài)裝載PHP模塊,

然后再用語(yǔ)句____使得Apache把所有擴(kuò)展名為php的文件都作為PHP腳本處理。答:LoadModulephp5_module"c:/php/php5apache2.dll";AddTypeapplication/x-httpd-php.php

見(jiàn)參考手冊(cè)》目錄》II.安裝與配置》6.Windows系統(tǒng)下的安裝》MicrosoftWindows下的Apache2.0.x

7.語(yǔ)句include和require都能把另外一個(gè)文件包含到當(dāng)前文件中,它們的區(qū)別是____;為了避免多次包含同一文件,可以用語(yǔ)句____來(lái)代替它們。

答:在如何處理失敗時(shí),include()產(chǎn)生一個(gè)警告而require()則導(dǎo)致一個(gè)致命錯(cuò)誤;require_once()/include_once()

8.一個(gè)函數(shù)的參數(shù)不能是對(duì)變量的引用,除非在php.ini中把____設(shè)為on.答:allow_call_time_pass_referenceboolean:是否啟用在函數(shù)調(diào)用時(shí)強(qiáng)制參數(shù)被按照引用傳遞,見(jiàn)參考手冊(cè)》附錄G

9.SQL中LEFTJOIN的含義是__,如果tbl_user記錄了學(xué)生的姓名(name)和學(xué)號(hào)(ID),

tbl_score記錄了學(xué)生(有的學(xué)生考試以后被開(kāi)除了,沒(méi)有其記錄)的學(xué)號(hào)(ID)和考試成績(jī)(score)以及考試科目(subject),要想打印出各個(gè)學(xué)生姓名及對(duì)應(yīng)的的各科總成績(jī),則可以用SQL語(yǔ)句____.答:自然左外連接

createdatabasephpinterview;usephpinterview

createtabletbl_user(

IDintnotnull,

namevarchar(50)notnull,

primarykey(ID));

createtabletbl_score(

IDintnotnull,

scoredec(6,2)notnull,

subjectvarchar(20)notnull);

insertintotbl_user(ID,name)values(1,"beimu");insertintotbl_user(ID,name)values(2,"aihui");

insertintotbl_score(ID,score,subject)values(1,90,"語(yǔ)文");insertintotbl_score(ID,score,subject)values(1,80,"數(shù)學(xué)");insertintotbl_score(ID,score,subject)values(2,86,"數(shù)學(xué)");insertintotbl_score(ID,score,subject)values(2,96,"語(yǔ)文");

selectA.id,sum(B.score)assumscorefromtbl_userAleftjointbl_scoreBonA.ID=B.IDgroupbyA.id

10.在PHP中,heredoc是一種特殊的字符串,它的結(jié)束標(biāo)志必須____答:結(jié)束標(biāo)識(shí)符所在的行不能包含任何其它字符除";"

11.寫(xiě)一個(gè)函數(shù),能夠遍歷一個(gè)文件夾下的所有文件和子文件夾。

{

$files[]=$dir."/".$file;}}}

closedir($handle);return$files;}}}

print_r(my_scandir("D:ProgramFilesInternetExplorerMUI"));?>

1、用PHP打印出前一天的時(shí)間,格式是201*-5-1022:21:21(2分)

echodate(‘Y-m-dH:i:s’,date(‘U’)-86400);

或者echodate("Y-m-dH:i:s",strtotime("-1day"));

2、echo(),print(),print_r()的區(qū)別(3分)

echo是PHP語(yǔ)句,語(yǔ)句是沒(méi)有返回值的,而print和print_r是函數(shù),函數(shù)可以有返回值。

print只能打印出簡(jiǎn)單類型變量的值(如int,string)print_r可以打印出復(fù)雜類型變量的值(如數(shù)組,對(duì)象)echo--輸出一個(gè)或者多個(gè)字符串

3、能夠使HTML和PHP分離開(kāi)使用的模板(1分)

smarty模板

4、使用哪些工具進(jìn)行版本控制?(1分)

CVS和SVN[subversion]

5、如何實(shí)現(xiàn)字符串翻轉(zhuǎn)?(3分)

使用php函數(shù)strrev(‘a(chǎn)bc’)

6、優(yōu)化MYSQL數(shù)據(jù)庫(kù)的方法。(4分,多寫(xiě)多得)

(1).選取最適用的字段屬性,應(yīng)該盡量把字段設(shè)置為NOTNULL,這樣在將來(lái)執(zhí)行查詢的時(shí)候,數(shù)據(jù)庫(kù)不用去比較NULL值。

(2).使用連接(JOIN)來(lái)代替子查詢(Sub-Queries)(3).使用聯(lián)合(UNION)來(lái)代替手動(dòng)創(chuàng)建的臨時(shí)表(4).盡量少使用LIKE關(guān)鍵字和通配符(5).使用事務(wù)和外鍵

7、PHP的意思(送1分)

PHP是一種服務(wù)器端的,嵌入HTML的腳本語(yǔ)言。

英文“超級(jí)文本預(yù)處理語(yǔ)言”(HypertextPreprocessor)的縮寫(xiě)

8、MYSQL取得當(dāng)前時(shí)間的函數(shù)是?,格式化日期的函數(shù)是(2分)

now()date_format(date,format)

9、實(shí)現(xiàn)中文字串截取無(wú)亂碼的方法。(3分)

當(dāng)用substr截取中文字符的時(shí)候會(huì)出現(xiàn)亂碼,當(dāng)然你如果裝了mb擴(kuò)展,用mb_substr截取就不會(huì)出現(xiàn)這種問(wèn)題,如果你用的是虛擬主機(jī),主機(jī)上又沒(méi)裝mb擴(kuò)展的話,你可以用下面的函數(shù)截取

#Cutchinesestringintoappointedlength#@param[string]stringneeddeal

#@param[start]positiontocutfrom#@param[length]lengthtocut#@returnstring

functionGBsubstr($string,$start,$length){if(strlen($string)>$length){$str=null;

$len=$start+$length;

for($i=$start;$i0xa0){$str.=substr($string,$i,2);$i++;}else{

$str.=substr($string,$i,1);}}

return$str."...";}else{

return$string;}}

10、您是否用過(guò)版本控制軟件?如果有您用的版本控制軟件的名字是?(1分)

CVSsubversion

11、您是否用過(guò)模板引擎?如果有您用的模板引擎的名字是?(1分)

SmartyDiscuz

12、請(qǐng)簡(jiǎn)單闡述您最得意的開(kāi)發(fā)之作(4分)

。。。

13、對(duì)于大流量的網(wǎng)站,您采用什么樣的方法來(lái)解決訪問(wèn)量問(wèn)題?(4分)

首先,確認(rèn)服務(wù)器硬件是否足夠支持當(dāng)前的流量其次,優(yōu)化數(shù)據(jù)庫(kù)訪問(wèn)。第三,禁止外部的盜鏈。第四,控制大文件的下載。

第五,使用不同主機(jī)分流主要流量第六,使用流量分析統(tǒng)計(jì)軟件。

14、用PHP寫(xiě)出顯示客戶端IP與服務(wù)器IP的代碼(1分)

客戶端IP:echo$_SERVER[‘REMOTE_ADDR’];或者:getenv("REMOTE_ADDR");

服務(wù)器IP:

$serverIP=gethostbynamel("webpro01");

echo"ServerIPAddress:";

for($i=0;$iecho"

".$netscapeftp[$i];}

echo"";

?>

15、語(yǔ)句include和require的區(qū)別是什么?為避免多次包含同一文件,可用(?)語(yǔ)句代替它們?(2分)

1、PHP程序執(zhí)行到require()時(shí),只會(huì)讀取一次檔案,故常放在程序開(kāi)頭,檔案引入后PHP會(huì)將網(wǎng)頁(yè)檔重新編譯,讓引入檔成為原先網(wǎng)頁(yè)的一部分。

2、PHP程序執(zhí)行到include()時(shí),每次皆會(huì)讀取檔案,故常用于流程控制的區(qū)段,如條件判斷或循環(huán)中。

3、require():如果文件不存在,會(huì)報(bào)出一個(gè)fatalerror.腳本停止執(zhí)行

4、include():如果文件不存在,會(huì)給出一個(gè)warning,但腳本會(huì)繼續(xù)執(zhí)行5、推薦使用require_once()和include_once(),可以檢測(cè)文件是否有重復(fù)包含。16、如何修改SESSION的生存時(shí)間(1分).

1.將php.ini中session.gc_maxlifetime設(shè)置為9999(默認(rèn)為1440)重啟apache即可2.

$savePath="./session_save_dir/";

$lifeTime=24*3600;

session_save_path($savePath);

session_set_cookie_params($lifeTime);

session_start();3.

setcookie()或session_set_cookie_params($lifeTime)17、有一個(gè)網(wǎng)頁(yè)地址,比如PHP開(kāi)發(fā)資源網(wǎng)主頁(yè):

,如何得到它的內(nèi)容?($1分)

//需要讀取的page地址

$http_page_url="";//打開(kāi)遠(yuǎn)程文件

$read_file=fopen($http_page_url,"rb");if(!feof($read_file)){//讀取遠(yuǎn)程文件

$file_stream="";do{

$data=fread($read_file,8192);if(strlen($data)==0){break;}

$file_stream.=$data;}while(true);}

echo$file_stream;//輸出內(nèi)容

對(duì)PHP5及更高版本可以:

$handle=fopen("","rb");

$contents=stream_get_contents($handle);

fclose($handle);

echo$contents;?>

最簡(jiǎn)單的方法是調(diào)用函數(shù):

printfile_get_contents("");?>

18、在HTTP1.0中,狀態(tài)碼401的含義是(?);如果返回“找不到文件”的提示,則可用header函數(shù),其語(yǔ)句為(?);(2分)

狀態(tài)值為401,代表未被授權(quán);header("Location:");

19、在PHP中,heredoc是一種特殊的字符串,它的結(jié)束標(biāo)志必須?(1分)

heredoc的語(yǔ)法是用"

20、談?wù)刟sp,php,jsp的優(yōu)缺點(diǎn)(1分)

ASP全名ActiveServerPages,是一個(gè)WEB服務(wù)器端的開(kāi)發(fā)環(huán)境,利用它可以產(chǎn)生和運(yùn)

行動(dòng)態(tài)的、交互的、高性能的WEB服務(wù)應(yīng)用程序。ASP采用腳本語(yǔ)言VBScript(Javascript

)作為自己的開(kāi)發(fā)語(yǔ)言。

PHP是一種跨平臺(tái)的服務(wù)器端的嵌入式腳本語(yǔ)言.它大量地借用C,Java和Perl語(yǔ)言的語(yǔ)法

,并耦合PHP自己的特性,使WEB開(kāi)發(fā)者能夠快速地寫(xiě)出動(dòng)態(tài)生成頁(yè)面.它支持目前絕大多數(shù)數(shù)

據(jù)庫(kù)。還有一點(diǎn),PHP是完全免費(fèi)的,不用花錢,你可以從PHP官方站點(diǎn)(

t)自由下載。而且你可以不受限制地獲得源碼,甚至可以從中加進(jìn)你自己需要的特色。

JSP是Sun公司推出的新一代站點(diǎn)開(kāi)發(fā)語(yǔ)言,他完全解決了目前ASP,PHP的一個(gè)通病--

腳本級(jí)執(zhí)行(據(jù)說(shuō)PHP4也已經(jīng)在Zend的支持下,實(shí)現(xiàn)編譯運(yùn)行).Sun公司借助自己在Jav

a上的不凡造詣,將Java從Java應(yīng)用程序和JavaApplet之外,又有新的碩果,就是Js

p--JavaServerPage。Jsp可以在Serverlet和JavaBean的支持下,完成功能強(qiáng)大的站點(diǎn)程序。

三者都提供在HTML代碼中混合某種程序代碼、由語(yǔ)言引擎解釋執(zhí)行程序代碼的能力。

但JSP代碼被編譯成Servlet并由Java虛擬機(jī)解釋執(zhí)行,這種編譯操作僅在對(duì)JSP頁(yè)面的

第一次請(qǐng)求時(shí)發(fā)生。在ASP、PHP、JSP環(huán)境下,HTML代碼主要負(fù)責(zé)描述信息的顯示樣式

,而程序代碼則用來(lái)描述處理邏輯。普通的HTML頁(yè)面只依賴于Web服務(wù)器,而ASP、PH

P、JSP頁(yè)面需要附加的語(yǔ)言引擎分析和執(zhí)行程序代碼。程序代碼的執(zhí)行結(jié)果被重新嵌入到

HTML代碼中,然后一起發(fā)送給瀏覽器。ASP、PHP、JSP三者都是面向Web服務(wù)器的技術(shù)

,客戶端瀏覽器不需要任何附加的軟件支持。

21、談?wù)剬?duì)mvc的認(rèn)識(shí)(1分)

22、寫(xiě)出發(fā)貼數(shù)最多的十個(gè)人名字的SQL,利用下表:members(id,username,posts,pass,email)(2分)SelectusernameFROMmembersorDERBYpostsDESCLIMIT0,10;

23.請(qǐng)說(shuō)明php中傳值與傳引用的區(qū)別。什么時(shí)候傳值什么時(shí)候傳引用?(2分)

Callbyvalue(傳值):指從主程序?qū)⒆兞績(jī)?nèi)容傳遞給函數(shù)的參數(shù),無(wú)論在函數(shù)內(nèi)如何修改、變化該參數(shù)值,都不影響主程序原本變量的內(nèi)容,即使變量名稱相同。

調(diào)用方式:函數(shù)名(參數(shù)1,參數(shù)2);

Callbyaddress(傳引用):指從主程序?qū)⒆兞康刂穫鬟f給函數(shù)的參數(shù),在函數(shù)內(nèi)若修改、變化該參數(shù)值,會(huì)修改主程序原本變量的內(nèi)容,即主程序與函數(shù)存取的是同一變量。

調(diào)用方式:函數(shù)名(&參數(shù)1,&參數(shù)2);

按值傳遞:函數(shù)范圍內(nèi)對(duì)值的任何改變?cè)诤瘮?shù)外部都會(huì)被忽略

按引用傳遞:函數(shù)范圍內(nèi)對(duì)值的任何改變?cè)诤瘮?shù)外部也能反映出這些修改

優(yōu)缺點(diǎn):按值傳遞時(shí),php必須復(fù)制值。特別是對(duì)于大型的字符串和對(duì)象來(lái)說(shuō),這將會(huì)是一個(gè)代價(jià)很大的操作。

按引用傳遞則不需要復(fù)制值,對(duì)于性能提高很有好處。

24.在PHP中error_reporting這個(gè)函數(shù)有什么作用?(1分)

error_reporting()用于設(shè)置php的偵聽(tīng)錯(cuò)誤的級(jí)別.[用來(lái)配置錯(cuò)誤信息回報(bào)的等級(jí)].

//Turnoffallerrorreportingerror_reporting(0);

//Reportsimplerunningerrors

error_reporting(E_ERROR|E_WARNING|E_PARSE);

//ReportingE_NOTICEcanbegoodtoo(toreportuninitialized//variablesorcatchvariablenamemisspellings...)

error_reporting(E_ERROR|E_WARNING|E_PARSE|E_NOTICE);//ReportallerrorsexceptE_NOTICE

//Thisisthedefaultvaluesetinphp.inierror_reporting(E_ALL^E_NOTICE);//ReportallPHPerrors

error_reporting(E_ALL);

//Sameaserror_reporting(E_ALL);ini_set("error_reporting",E_ALL);?>25.請(qǐng)寫(xiě)一個(gè)函數(shù)驗(yàn)證電子郵件的格式是否正確(2分)

(1)Javascript實(shí)現(xiàn):

functioncheckEmail(form){

re=/^[^s]+@[^s]+.[^s]+$/;

if(re.test(form.value)){

alert(‘符合驗(yàn)證’);

}else{

alert(‘驗(yàn)證失敗’);}}

(2)php實(shí)現(xiàn)

functionCheckMailAdr($str){

return(eregi(“^[_.0-9a-z-]+@([0-9a-z][0-9a-z-]+.)+[a-z]{2,3}$“,$str));}(3)

functionvalidateEmail($email){

if(eregi("^[_a-z0-9-]+(.[_a-z0-9-]+)*@[a-z0-9-]+(.[a-z0-9-]+)*$",$email)){

returntrue;}else{

returnfalse;}}

26.簡(jiǎn)述如何得到當(dāng)前執(zhí)行腳本路徑,包括所得到參數(shù)。(2分)

說(shuō)明:例如有一個(gè)腳本,傳給他的參數(shù)有參數(shù)1,參數(shù)2,參數(shù)3。傳遞參數(shù)的方法有可能是GET有可能是POST,那么現(xiàn)在請(qǐng)寫(xiě)出類似:

參數(shù)1=值1&參數(shù)2=值2..的結(jié)果。

1獲取所有參數(shù):可以用以下方法://獲取post的數(shù)據(jù)

while(list($var,$value)=each($HTTP_POST_VARS)){

echo“$var=$valuen“;}

//獲取get方式的數(shù)據(jù)

while(list($var,$value)=each($HTTP_GET_VARS)){

echo“$var=$valuen“;}

2.echo$_SERVER["scrīpt_FILENAME"]."?".$_SERVER["QUERY_STRING"];

27、JS表單彈出對(duì)話框函數(shù)是?獲得輸入焦點(diǎn)函數(shù)是?(2分)

彈出對(duì)話框:alert(),prompt(),confirm()獲得輸入焦點(diǎn)focus()

28、JS的轉(zhuǎn)向函數(shù)是?怎么引入一個(gè)外部JS文件?(2分)

轉(zhuǎn)向函數(shù)window.location.href

引入外部JS文件:

29、foo()和@foo()之間有什么區(qū)別?(1分)

@foo()有控制錯(cuò)誤輸出

30、如何聲明一個(gè)名為”myclass”的沒(méi)有方法和屬性的類?(1分)

classmyclass{}

31、如何實(shí)例化一個(gè)名為”myclass”的對(duì)象?(1分)

$newmyclass=newmyclass();

32、你如何訪問(wèn)和設(shè)置一個(gè)類的屬性?(2分)

$newmyclass=newmyclass();$temp=$newmyclass->test;$newmyclass->test="a";33、mysql_fetch_row()和mysql_fetch_array之間有什么區(qū)別?(1分)

mysql_fetch_row--從結(jié)果集中取得一行作為枚舉數(shù)組mysql_fetch_array--從結(jié)果集中取得一行作為關(guān)聯(lián)數(shù)組,或數(shù)字?jǐn)?shù)組,或二者兼有

34、GD庫(kù)是做什么用的?(1分)

gd庫(kù)提供了一系列用來(lái)處理圖片的API,使用GD庫(kù)可以處理圖片,或者生成圖片。

在網(wǎng)站上GD庫(kù)通常用來(lái)生成縮略圖或者用來(lái)對(duì)圖片加水印或者對(duì)網(wǎng)站數(shù)據(jù)生成報(bào)表。

35、指出一些在PHP輸入一段HTML代碼的辦法。(1分)

1.echo‘’;直接輸出

2.requireinclude包含進(jìn)來(lái)一段html代碼

3.由XML文件得到

36、下面哪個(gè)函數(shù)可以打開(kāi)一個(gè)文件,以對(duì)文件進(jìn)行讀和寫(xiě)操作?(1分)(a)fget()(b)file_open()(c)fopen()(d)open_file()

(c)是正確的

37、下面哪個(gè)選項(xiàng)沒(méi)有將john添加到users數(shù)組中?(1分)(a)$users[]=‘john’;

(b)array_add($users,’john’);(c)array_push($users,‘john’);(d)$users||=‘john’;

(b)(d)均是錯(cuò)誤的寫(xiě)法

38、下面的程序會(huì)輸入是否?(1分)$num=10;

functionmultiply(){$num=$num*10;}

multiply();echo$num;?>輸出39、使用php寫(xiě)一段簡(jiǎn)單查詢,查出所有姓名為“張三”的內(nèi)容并打印出來(lái)(2分)

表名User

NameTelContentDate

張三13333663366大專畢業(yè)201*-10-11張三13612312331本科畢業(yè)201*-10-15張四021-55665566中專畢業(yè)201*-10-15

請(qǐng)根據(jù)上面的題目完成代碼:

$mysql_db=mysql_connect("local","root","pass");@mysql_select_db("DB",$mysql_db);

$result=mysql_query("select*fromUserwhereName="張三"");while($row=mysql_fetch_array($result)){

echo$row["Name"].$row["Tel"].$row["Content"].$row["Date"];echo"";}

40、如何使用下面的類,并解釋下面什么意思?(3)classtest{

functionGet_test($num){$num=md5(md5($num)."En");return$num;}}

雙重md5加密

$testObject=newtest();

$encryption=$testObject->Get_test("xiaotian_ls");

41、寫(xiě)出SQL語(yǔ)句的格式:插入,更新,刪除(4分)表名User

NameTelContentDate

張三13333663366大專畢業(yè)201*-10-11張三13612312331本科畢業(yè)201*-10-15張四021-55665566中專畢業(yè)201*-10-15

(a)有一新記錄(小王13254748547高中畢業(yè)201*-05-06)請(qǐng)用SQL語(yǔ)句新增至表中

InsertINTOUser("Name","Tel","Content","Date")VALUES("小王","13254748547","高中畢業(yè)","201*-05-06")

(b)請(qǐng)用sql語(yǔ)句把張三的時(shí)間更新成為當(dāng)前系統(tǒng)時(shí)間

UpdateUserSETDate=DATE_FORMAT(NOW(),"%Y-%m-%d")WhereName="張三"(c)請(qǐng)寫(xiě)出刪除名為張四的全部記錄

DeleteFROMUserWhereName="張四"

42、請(qǐng)寫(xiě)出數(shù)據(jù)類型(intcharvarchardatetimetext)的意思;請(qǐng)問(wèn)varchar和char有什么區(qū)別(2分)

int數(shù)值類型char固定長(zhǎng)度字符串varchar可變長(zhǎng)字符串datetime日期時(shí)間型text字符字符串

char列的長(zhǎng)度固定為創(chuàng)建表時(shí)聲明的長(zhǎng)度.varchar列中的值為可變長(zhǎng)字符串.

43、MySQ自增類型(通常為表ID字段)必需將其設(shè)為(?)字段(1分)

AUTO_INCREMENT

44、寫(xiě)出以下程序的輸出結(jié)果(1分)$b=201;$c=40;

$a=$b>$c?4:5;echo$a;?>4

45、檢測(cè)一個(gè)變量是否有設(shè)置的函數(shù)是否?是否為空的函數(shù)是?(2分)

isset($a)empty($a)

46、取得查詢結(jié)果集總數(shù)的函數(shù)是?(1分)

mysql_num_rows($res);

47、$arr=array("james","tom","symfony");請(qǐng)打印出第一個(gè)元素的值(1分)

echo$arr[0];

48、請(qǐng)將47題的數(shù)組的值用","號(hào)分隔并合并成字串輸出(1分)

echo$arr[0].$arr[1].$arr[2];

49、$a="abcdef";請(qǐng)取出$a的值并打印出第一個(gè)字母(1分)

echo$a{0};

50、PHP可以和sqlserver/oracle等數(shù)據(jù)庫(kù)連接嗎?(1分)

可以

51、請(qǐng)寫(xiě)出PHP5權(quán)限控制修飾符(3分)

privateprotectedpublic

52、請(qǐng)寫(xiě)出php5的構(gòu)造函數(shù)和析構(gòu)函數(shù)(2分)

__construct__destruct

53、以下請(qǐng)用PHPMYADMIN完成

(一)創(chuàng)建新聞發(fā)布系統(tǒng),表名為message有如下字段(3分)id文章id

title文章標(biāo)題content文章內(nèi)容

category_id文章分類idhits點(diǎn)擊量

CreateTABLE"message"(

"id"int(11)NOTNULLauto_increment,"title"varchar(200)defaultNULL,"content"blob,

"category_id"int(11)defaultNULL,"hits"int(11)defaultNULL,PRIMARYKEY("id")

)ENGINE=InnoDBDEFAULTCHARSET=utf8

(二)同樣上述新聞發(fā)布系統(tǒng):表comment記錄用戶回復(fù)內(nèi)容,字段如下(4分)comment_id回復(fù)id

id文章id,關(guān)聯(lián)message表中的idcomment_content回復(fù)內(nèi)容

現(xiàn)通過(guò)查詢數(shù)據(jù)庫(kù)需要得到以下格式的文章標(biāo)題列表,并按照回復(fù)數(shù)量排序,回復(fù)最高的排在最前面

文章id文章標(biāo)題點(diǎn)擊量回復(fù)數(shù)量

用一個(gè)SQL語(yǔ)句完成上述查詢,如果文章沒(méi)有回復(fù)則回復(fù)數(shù)量顯示為0

Selectmessage.idid,message.titletitle,IF(message.`hits`IS

NULL,0,message.`hits`)hits,IF(comment.`id`isNULL,0,count(*))numberFROMmessageLEFTJOINcommentONmessage.id=comment.idGROUPBYmessage.`id`

(三)上述內(nèi)容管理系統(tǒng),表category保存分類信息,字段如下(3分)category_idint(4)notnullauto_increment;categroy_namevarchar(40)notnull;

用戶輸入文章時(shí),通過(guò)選擇下拉菜單選定文章分類寫(xiě)出如何實(shí)現(xiàn)這個(gè)下拉菜單

functioncategoryList(){

$result=mysql_query("selectcategory_id,categroy_namefromcategory")ordie("Invalidquery:".mysql_error());

print("n");while($rowArray=mysql_fetch_array($result)){print("".$rowArray["categroy_name"]."n");}print("");}

友情提示:本文中關(guān)于《PHP程序員面試題目》給出的范例僅供您參考拓展思維使用,PHP程序員面試題目:該篇文章建議您自主創(chuàng)作。

來(lái)源:網(wǎng)絡(luò)整理 免責(zé)聲明:本文僅限學(xué)習(xí)分享,如產(chǎn)生版權(quán)問(wèn)題,請(qǐng)聯(lián)系我們及時(shí)刪除。


PHP程序員面試題目》由互聯(lián)網(wǎng)用戶整理提供,轉(zhuǎn)載分享請(qǐng)保留原作者信息,謝謝!
鏈接地址:http://m.hmlawpc.com/gongwen/695400.html
相關(guān)文章