PHP程序員招聘試卷_第1頁
PHP程序員招聘試卷_第2頁
PHP程序員招聘試卷_第3頁
PHP程序員招聘試卷_第4頁
PHP程序員招聘試卷_第5頁
已閱讀5頁,還剩37頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領

文檔簡介

PHP程序員招聘試卷

選擇

1、下列命令中不是PHP的輸出命令的是

(B)A.echoB.printf()C.printD.write2>PHP定義活動變量的

方法是(B)

A.VARB.$C.$$D.&

3、PHP表達式$foo=l+”bob3",則$化。的值是(B)

A.IB.lbob3C.IbD.924>下關于PHP變量的說法正確的是

(D)A.PHP是一種強類型語言

B.PHP變量聲明時需要指定其變量的類型

C.PHP變量聲明時在變量名前面使用的字符是“&”

D.PHP變量使用時、上下文會自動確定其變量的類型5、在

PHP嵌入HTML文檔使用的定界符號是(C)A.結(jié)束

B.以””結(jié)束C.以"”結(jié)束D.以"“結(jié)束

6、PHP語法中,假設已知$@="hello",$b="china",則

要得到"hellochina”的字符串,應該如何操作(C)

A.$a+$bB.$a-$bC.$a.$bD,$a+=$b7>要配置PHP環(huán)境,只

需修改(A)

A.php.iniB.http.confC.php.sysD.php.exe8、有下歹!J

PHP語句段(D)

若要輸出"false",$a應該是

A.10B.3C.“true”D.“0”9、下面程序運行的結(jié)果為(A)。

$a=array(a,b,c,d);

$index=arraysearch(〃a〃,$a);if($index==false)

echo”在數(shù)組a中未發(fā)現(xiàn)字符〃a〃〃;

elseecho/,index=,z.$index;

A.在數(shù)組a中未發(fā)現(xiàn)字符'a'B.0C.ID.210、選擇下

面程序的運行結(jié)果(D)。

Echosubstr_replace(UABCV,"DEF”,3,1)

A.ABCB.DEFC.ABCDEFD.以上都不對11選擇下面程序運

行的結(jié)果0。echo"\\$a=$a\\$b=$b\\$c=$c";?>

A.$a=3B.$a=3C.$a=2D.$a=2$b=2$b=2$b=2$b=2$c=3$c=

2$c=3$c=2

12getdate()函數(shù)返回的值的數(shù)據(jù)類型是。

(B)A,整形B.浮點型C.數(shù)組D.字符串E.布爾型13.下列哪些

數(shù)據(jù)庫管理系統(tǒng)是PHP不支持的?(B)

A.MySQLB.IBMDB2

C.PostgreSQLD.MicrosoftSQLScrverE.以上沒有一個P1IP

不支持

14.請看下面的SQL查詢語句,如何才能減少從數(shù)據(jù)庫返回

的數(shù)據(jù)量?(B)SELECT*FROMMY_TABLE

A.轉(zhuǎn)為存儲過程B.用具體的字段名來代替"*"C.加一個”

where”語句D.轉(zhuǎn)變查詢?yōu)橐晥DE.使用預語句

15.下面哪個語句用來往數(shù)據(jù)表里面增加一條記錄?(D)

A.SELECTS.UPDATEC.DELETED.INSERT

16.下面哪個不是一個合法的SQL的歸類函數(shù)?(E)

A.AVGB.SUMC.MIND.MAXE.CURRENT_DATE()

17.下面哪個網(wǎng)絡協(xié)議是PHP不支持的?(E)

A.tcpB.udpC.udgD.pdcE.unix

18.做文件上傳的時候,你可以讓瀏覽器來限制上傳的文件

大小嗎?(8)A.可以13.不可以

19.你可以通過一個PHP函數(shù)把所有的錯誤信息匯報都屏蔽

掉嗎?(A)A.可以B.不可以

20假設$8=5,有$@+=2,則$@的值為(C)A.5B.6c.7D.8二、

填空題

l.Php配置文件為_php.inio2.檢查一個變量是否

為空的函數(shù)。

3、已知ltrim()函數(shù)是去除字符串左邊的空格或其他字符,

去除字符串右邊的空格或其他字符使用函數(shù)。4、在

php頁面中要運行php代碼,可以用以下語句聲明腳本

5、如果在php中動態(tài)的設置“我是一個學生",并且以藍

色隸書字體顯示,大小為12,用php代碼如何輸出,

_______________________________o6、HTML標記,可單獨使

用或嵌入在各個php腳本單元中,以〃〃為定界符;

php代碼可單獨使用或包含在和〈/html〉內(nèi),以〃〃

為定界符7、一段與mysql數(shù)據(jù)庫建立連接的代碼

8、PHP指的是—PHP語言o9、

此段程序執(zhí)行后,瀏覽器上顯示的結(jié)果是5o

10、使用〃get〃方法提交的表單中獲取數(shù)據(jù)是

_____________o三、問答題

1>簡述break和continue的區(qū)別

2、簡述public、protected、private修飾類中的函數(shù)時

的意義?3、mysql_fetch_row()和mysqlfetcharray之間有

什么區(qū)別?4、簡述修飾符this->、parent::、self::的作用?

5、PHP如何創(chuàng)建一個COOKIE?

6、簡述_get()、_set()函數(shù)的作用?7、php的包含語

句有那些以及區(qū)別?

四、編程題:

1、用PHP實現(xiàn)一用戶登陸程序。數(shù)據(jù)庫test中user(用

戶)表結(jié)構(gòu)如卜:Username(useridchar(8),passwordchar(6))

2、在MYSQL中,數(shù)據(jù)庫"study”中student表內(nèi)容如下:

idnamesexlOOl張山男1002李四男1003王武女

連接數(shù)據(jù)庫服務器參數(shù)為:("localhost",“root“,”

root")請使用PHP語言編寫刪除一條id為1002的數(shù)據(jù)記錄

的程序

3、使用第2期的數(shù)據(jù)庫和表,用php寫一段簡單查詢,查

出所有性別為“男”的內(nèi)容并打印出來。

4、編程輸出99乘法表

5、編程求10的階乘并輸出

《PHP程序員招聘中的常見面試題!》

表單中POST方法與GET方法有什么區(qū)別?答:

l.get是從服務器上獲取數(shù)據(jù),post是向服務器傳送數(shù)據(jù)。

2.get是把參數(shù)數(shù)據(jù)隊列加到提交表單的ACTION屬性所指

的URL中,值和表單內(nèi)各個字段一一對應,在URL中可以看到;

而post是通過HTTPpost機制,將表單內(nèi)各個字段與其內(nèi)

容放置在HTMLHEADER內(nèi)一起傳送到ACTION屬性所指的URL地

址。用戶看不到這個過程。

3?對于get方式,服務器端用Request.QueryString獲取

變量的值,對于post方式,服務器端用Request.Form獲取提

交的數(shù)據(jù)。

4.get傳送的數(shù)據(jù)量較小,不能大于2KBOpost傳送的數(shù)

據(jù)量較大,但受配置文件限制。

5.get安全性非常低,post安全性較高。

優(yōu)化mysql數(shù)據(jù)庫的方法?答:

1、選取最適用的字段屬性

MySQL可以很好的支持大數(shù)據(jù)量的存取,但是一般說來,

數(shù)據(jù)庫中的表越小,在它上面執(zhí)行的查詢也就會越快。因此,

在創(chuàng)建表的時候,為了獲得更好的性能,我們可以將表中字段

的寬度設得盡可能小。例如,在定義郵政編碼這個字段時,如

果將其設置為CHAR(255),顯然給數(shù)據(jù)庫增加了不必要的空間,

甚至使用VARCHAR這種類型也是多余的,因為CHAR(6)就可以

很好的完成任務了。同樣的,如果可以的話,我們應該使用

MEDIUMINT而不是BIGIN來定義整型字段。

另外一個提高效率的方法是在可能的情況下,應該盡量把

字段設置為NOTNULL,這樣在將來執(zhí)行查詢的時候,數(shù)據(jù)庫不

用去比較NULL值。對于某些文本字段,例如“省份”或者“性

別”,我們可以將它們定義為ENUM類型。因為在MySQL中,

ENUM類型被當作數(shù)值型數(shù)據(jù)來處理,而數(shù)值型數(shù)據(jù)被處理起來

的速度要比文本類型快得多。這樣,我們又可以提高數(shù)據(jù)庫的

性能。2、使用連接(JOIN)來代替子查詢(Sub-Queries)MySQL

從4.1開始支持SQL的子查詢。這個技術可以使用SELECT語句

來創(chuàng)建一個單列的查詢結(jié)果,然后把這個結(jié)果作為過濾條件用

在另一個查詢中。例如,我們要將客戶基本信息表中沒有任何

訂單的客戶刪除掉,就可以利用子查詢先從銷售信息表中將所

有發(fā)出訂單的客戶ID取出來,然后將結(jié)果傳遞給主查詢,如下

所示:DELETEFROMcustomerinfo

WHERECustomerlDNOTin(SELECTCustomerlDFROMsalesinfo)

使用子查詢可以一次性的完成很多邏輯上需要多個步驟才能完

成的SQL操作,同時也可以避免事務或者表鎖死,并且寫起來

也很容易。但是,有些情況下,子查詢可以被更有效率的連接

(JOIN)..替代。例如,假設我們要將所有沒有訂單記錄的用

戶取出來,可以用下面這個查詢完成:

SELECT*FROMcustomerinfo

WHERECustomerlDNOTin(SELECTCustomerlDFROMsalesinfo)

如果使用連接(JOIN)..來完成這個查詢工作,速度將會

快很多。尤其是當salesinfo表中對CjstomerTD建有索引的話,

性能將會更好,查詢?nèi)缦拢篠ELECT*FROMcustomerinfo

LEFTJOINsalesinfoONcustomerinfo.CustomerID=salesinf

o.CustomerlD

WHEREsalesinfo.CustomerIDISNULL

連接(JOIN)..之所以更有效率一些,是因為MySQL不需

要在內(nèi)存中創(chuàng)建臨時表來完成這個邏輯上的需要兩個步驟的查

詢工作。

3、使用聯(lián)合(UNION)來代替手動創(chuàng)建的臨時表

MySQL從4.0的版本開始支持UNION查詢,它可以把需要

使用臨時表的兩條或更多的SELECT查詢合并的一個查詢中。在

客戶端的查詢會話結(jié)束的時候,臨時表會被自動刪除,從而保

證數(shù)據(jù)庫整齊、高效。使用UNION來創(chuàng)建查詢的時候,我們只

需要用UNION作為關鍵字把多個SELECT語句連接起來就可以了,

要注意的是所有SELECT語句中的字段數(shù)目要想同。下面的例子

就演示了一個使用UNION的查詢。

SELECTName,PhoneFROMclientUNION

SELECTName,BirthDateFROMauthorUNION

SELECTName,SupplierFROMproduct

4、事務

盡管我們可以使用子查詢(Sub-Queries).連接(JOIN)

和聯(lián)合(UNION)來創(chuàng)建各種各樣的查詢,但不是所有的數(shù)據(jù)庫

操作都可以只用一條或少數(shù)兒條SQL語句就可以完成的。更多

的時候是需要用到一系列的語句來完成某種工作。但是在這種

情況下,當這個語句塊中的某一條語句運行出錯的時候,整個

語句塊的操作就會變得不確定起來。設想一下,要把某個數(shù)據(jù)

同時插入兩個相關聯(lián)的表中,可能會出現(xiàn)這樣的情況:第一個

表中成功更新后,數(shù)據(jù)庫突然出現(xiàn)意外狀況,造成第二個表中

的操作沒有完成,這樣,就會造成數(shù)據(jù)的不完整,甚至會破壞

數(shù)據(jù)庫中的數(shù)據(jù)。要避免這種情況,就應該使用事務,它的作

用是:要么語句塊中每條語句都操作成功,要么都失敗。換句

話說,就是可以俁持數(shù)據(jù)庫中數(shù)據(jù)的一致性和完整性。事物以

BEGIN關鍵字開始,COMMIT關鍵字結(jié)束。在這之間的一條SQL

操作失敗,那么,ROLLBACK命令就可以把數(shù)據(jù)庫恢復到BEGIN

開始之前的狀態(tài)。

BEGIN;

INSERTINT0salesinfoSETCustomerID=14;

UPDATEinventorySETQuantity=l1

WIIEREitem=z,bookzz;

COMMIT;

事務的另一個重要作用是當多個用戶同時使用相同的數(shù)據(jù)

源時,它可以利用鎖定數(shù)據(jù)庫的方法來為用戶提供一種安全的

訪問方式,這樣可以保證用戶的操作不被其它的用戶所干擾。

5、鎖定表

盡管事務是維護數(shù)據(jù)庫完整性的一個非常好的方法,但卻

因為它的獨占性,有時會影響數(shù)據(jù)庫的性能,尤其是在很大的

應用系統(tǒng)中。由于在事務執(zhí)行的過程中,數(shù)據(jù)庫將會被鎖定,

因此其它的用戶請求只能暫時等待直到該事務結(jié)束。如果一個

數(shù)據(jù)庫系統(tǒng)只有少數(shù)幾個用戶來使用,事務造成的影響不會成

為一個太大的問題;但假設有成千上萬的用戶同時訪問一個數(shù)

據(jù)庫系統(tǒng),例如訪問一個電子商務網(wǎng)站,就會產(chǎn)生比較嚴重的

響應延遲。其實,有些情況下我們可以通過鎖定表的方法來獲

得更好的性能。下面的例子就用鎖定表的方法來完成前面一個

例子中事務的功能。

LOCKTABLEinventoryWRITESELECTQuantityFROMinventoryWHERE

Item二〃book”;...

UPDATEinventorySETQuantity=ll\WEREItem=/zbook/z;UNLOC

KTABLES

這里,我們用一個SELECT語句取出初始數(shù)據(jù),通過一些計

算,用UPDATE語句將新值更新到表中。包含有WRITE關鍵字的

LOCKTABLE語句可以保證在UNLOCKTABLES命令被執(zhí)行之前,不

會有其它的訪問來對inventory進行插入、更新或者刪除的操

作。

6、使用外鍵

鎖定表的方法可以維護數(shù)據(jù)的完整性,但是它卻不能保證

數(shù)據(jù)的關聯(lián)性。這個時候我們就可以使用外鍵。例如,外鍵可

以保證每一條銷售記錄都指向某一個存在的客戶。在這里,外

鍵可以把customerinfo表中的CustomerlD映射到salesinfo

表中CustomerlD,任何一條沒有合法CustomerlD的記錄都不

會被更新或插入到salesinfo中。CREATETABLEcustomerinfo(

CustomerlDTNTNOTNULL,PRTMARYKEY(CustomerlD))TYPE=IN

NODB;

CREATETABLEsalesinfo(

SalesIDINTNOTNULL,CustomerlDINTNOTNULL,PRIMARYKEY(C

ustomerlD,SalesID),

FOREIGNKEY(CustomerlD)REFERENCEScustomerinfo(Custom

erlD)ONDELETECASCADE)TYPE二INNODB;

注意例子中的參數(shù)“ONDELETECASCADE”。該參數(shù)保證當

customerinfo表中的一條客戶記錄被刪除的時候,salesinfo

表中所有與該客戶相關的記錄也會被自動刪除。如果要在

MySQL中使用外鍵,一定要記住在創(chuàng)建表的時候?qū)⒈淼念愋投?/p>

義為事務安全表InnoDB類型。該類型不是MySQL表的默認類型。

定義的方法是在CREATETABLE語句中加.上TYPE=INNODB。如例

中所示。

7、使用索引

索引是提高數(shù)據(jù)庫性能的常用方法,它可以令數(shù)據(jù)庫服務

器以比沒有索引快得多的速度檢索特定的行,尤其是在查詢語

句當中包含有句X(),MIN()和ORDERBY這些命令的時候,性能

提高更為明顯。那該對哪些字段建立索引呢?一般說來,索引

應建立在那些將用于JOIN,WHERE判斷和ORDERBY排序的字段上。

盡量不要對數(shù)據(jù)庫中某個含有大量重復的值的字段建立索引o

對于一個ENUM類型的字段來說,出現(xiàn)大量重復值是很有可能的

情況,例如customerinfo中的“province”..字段,在這樣的

字段上建立索引將不會有什么幫助;相反,還有可能降低數(shù)據(jù)

庫的性能。我們在創(chuàng)建表的時候可以同時創(chuàng)建合適的索引,也

可以使用ALTERTABLE或CREATEINDEX在以后創(chuàng)建索引。止匕外,

MySQL從版本3.23.23開始支持全文索引和搜索。全文索引在

MySQL中是一個FULLTEXT類型索引,但僅能用于MyISAM類型

的表。對于一個大的數(shù)據(jù)庫,將數(shù)據(jù)裝載到一個沒有FULLTEXT

索引的表中,然后再使用ALTERTABLE或CREATEINDEX創(chuàng)建索引,

將是非??斓摹5绻麑?shù)據(jù)裝載到一個已經(jīng)有FULLTEXT索引

的表中,執(zhí)行過程將會非常慢。

8、優(yōu)化的查詢語句

絕大多數(shù)情況下,使用索引可以提高查詢的速度,但如果

SQL語句使用不恰當?shù)脑挘饕龑o法發(fā)揮它應有的作用。下

面是應該注意的幾個方面。首先,最好是在相同類型的字段間

進行比較的操作。在MySQL3.23版之前,這甚至是一個必須的

條件。例如不能將一個建有索引的INT字段和BIGINT字段進行

比較;但是作為特殊的情況,在CHAR類型的字段和VARCHAR類

型字段的字段大小相同的時候,可以將它們進行比較。其次,

在建有索引的字段上盡量不要使用函數(shù)進行操作。

例如,在一個DATE類型的字段上使用YEAEO函數(shù)時,將

會使索引不能發(fā)揮應有的作用。所以,下面的兩個查詢雖然返

回的結(jié)果一樣,但后者要比前者快得多。

SELECT*FROMorderWHEREYEAR(OrderDate)<

201*;SELECT*FROMorderWHEREOrderDate<〃201*-01-01〃;同樣

的情形也會發(fā)生在對數(shù)值型字段進行計算的時候:

SELECT*FR0MinventoryWHEREAmount/7<

24;SELECT*FR0MinventoryWHEREAmount<24*7;

上面的兩個查詢也是返回相同的結(jié)果,但后面的查詢將比

前面的一個快很多。第三,在搜索字符型字段時,我們有時會

使用LIKE關鍵字和通配符,這種做法雖然簡單,但卻也是以犧

牲系統(tǒng)性能為代價的。例如下面的查詢將會比較表中的每一條

記錄。SELECT*FROMbooks

WHEREnamelike〃MySQL%〃但是如果換用下面的查詢,返回的

結(jié)果一樣,但速度就要快上很多:SELECT*FROMbooks

WHEREname>=〃MySQL〃andname<〃MySQM〃

最后,應該注意避免在查詢中讓MySQL進行自動類型轉(zhuǎn)換,

因為轉(zhuǎn)換過程也會使索引變得不起作用。

關于通過查詢緩沖提高查詢速度

一般我們使用SQL語句進行查詢時,數(shù)據(jù)庫服務器每次在

收到客戶端發(fā)來SQL后,都會執(zhí)行這條SQL語句。但當在一定

間隔內(nèi)(如1分鐘內(nèi)),接到完全一樣的SQL語句,也同樣執(zhí)行

它。雖然這樣可以保證數(shù)據(jù)的實時性,但在大多數(shù)時候,數(shù)據(jù)

并不要求完全的實時也就是說可以有一定的延時,如果是這

樣的話,在短時間內(nèi)執(zhí)行完全一樣的SQL就有些得不償失。

幸好MySQL為我們提供了查詢緩沖的功能(只能在

MySQL4.0.1及以上版本使用查詢緩沖)。我們可以通過查詢緩

沖在一定程度上提高查詢性能。

我們可以通過在MySQL安裝目錄中的my.ini文件設置查詢

緩沖。設置也非常簡單,只需要將query_cache_type設為1即

可。在設置了這個屬性后,MySQL在執(zhí)行任何SELECT語句之前,

都會在它的緩沖區(qū)中查詢是否在相同的SELECT語句被執(zhí)行過,

如果有,并且執(zhí)行結(jié)果沒有過期,那么就直接取查詢結(jié)果返回

給客戶端。但在寫SQL語句時注意,MySQL的查詢緩沖是區(qū)分

大小寫的。如下列的兩條SELECT語句:

代碼:

SELECT*fromTABLEl

SELECT*FROMTABLE1

上面的兩條SQL語句對于查詢緩沖是完全不同的SELECTo

而且查詢緩沖并不自動處理空格,因此,在寫SQL語句時,應

盡量減少空格的使用,尤其是在SQL首和尾的空格(因為,查詢

緩沖并不自動截取首尾空格)。

雖然不設置查詢緩沖,有時可能帶來性能上的損失,但有

一些SQL語句需耍實時地查詢數(shù)據(jù),或者并不經(jīng)常使用(可能一

天就執(zhí)行一兩次)。這樣就需要把緩沖關了。當然,這可以通過

設置que門「cache_type的值來關閉查詢緩沖,但這就將查詢緩

沖永久地關閉了。在MySQL5.0中提供了一種可以臨時關閉查詢

緩沖的方法:

代碼:

SELECTSQL_NO_CACHEfieldl,field2FR0MTABLE1

以上的SQL語句由于使用了SQL_NO_CACHE,因此,不管這

條SQL語句是否被執(zhí)行過,服務器都不會在緩沖區(qū)中查找,每

次都會執(zhí)行它。

我們還可以將my.ini中的querycachetype設成2,這

樣只有在使用了SQL_CACHE后,才使用查詢緩沖。

代碼:

SELECTSQL_CALHE*FROMTABLE1

實現(xiàn)中文字串截取無亂碼的方法?

mbsubstr()

session與cookie的區(qū)別?

1、session保存在服務器,客戶端不知道其中的信息;

cookie保存在客戶端,服務器能夠知道其中的信息。

2、session不能區(qū)分路徑,同一個用戶在訪問一個網(wǎng)站期

間,所有的session在任何一個地方都可以訪問到。而cookie

中如果設置了路徑參數(shù),那么同一個網(wǎng)站中不同路徑下的

cookie互相是訪問不到的。

3、session默認需要借助cookie才能正常工作。如果客

戶端完全禁止cookie,session,這種方法將失效。

4、session在用戶會話結(jié)束后就會關閉了,但cookie因

為保存在客戶端,可以長期保存。

5、從應用角度上說:session是一個動作狀態(tài)的持續(xù),是

一個會話,它在服務器中持續(xù)存在直到不用為止。cookie在后

繼的請求中,客戶端將把該信息返回給服務器,從而確定自己

的身份,對于瀏覽器在反復訪問是保持信息是很有用的。

不用新變量直接交換現(xiàn)有兩個變理的值?

php的面試題目1.$array[〃anykey〃]和蹌真割[anykey]的

區(qū)別?

答:單引號和沒有單引號區(qū)別,就是字符串和常量。而單

引號和雙引號的區(qū)別,就是字符串和變量吧。

不加單引號的話,php會首先認為他是常量,然后去搜尋

是否存在這個常量,若不存在,則理解為字符串,所以在效率

上就慢了。

2.echo輸出語句時候的連接符號:〃.〃和〃,〃。點號和逗號

的區(qū)別?

答:echo用點號時先把語句連接再輸出,而用逗號就等于

給它傳多個參數(shù),不需要進行字符串拼接這一步,效率高!

3.echo,print,printr的區(qū)別?

答:echo,直接輸出單個或者多個字符串,是PHP語句!

print,打印輸出簡單類型,是PHP函數(shù)!有整型返回值。

我試驗了下,都返回loprint.r,格式化打印輸出,常用于比

較復雜的類型,如數(shù)組,對象之類的,可以輸出完整結(jié)構(gòu),是

PHP函數(shù),返回值類型為布爾型!

4.獲取前天的日期,格式如:201*-01-1217:15:20

答:echodate(^Y-m-dh:i:s,z,time()-2*24*60*60);

echodate(〃Y-m-dh:i:s〃,strtotime(〃2daysago〃));未來兒

天的話把ago去掉就行了

5.如何將字符串翻轉(zhuǎn)過來?

答:$str=〃7654321〃;

echostrrev($str);//1234567另一種方法:

$strlen=strlen($str);

for($i=l;$i上面8條優(yōu)化的詳細說明請點擊該鏈接查看

完全優(yōu)化MySQL數(shù)據(jù)庫性能的八大巧方法

7.PHP的意思?(送一分)

答:Hypertextpreprocessor超文本預處理語言。

8.MYSQL取得當前時間的函數(shù)是?格式化日期的函數(shù)是?

答:當前日期函數(shù)為N0W();格式化日期函數(shù)是:

SELECTDATE_FORMAT(〃201*-01-

1117:25:36",Z,%H:%i:%s%m/%d/%Y,z):->17:25:3601/11/201*

其它時間函數(shù):詳細請查看該頁面MySql格式化時間函數(shù)

SELECTDAYOFWEEK(〃1998-02-03〃);->3

SELECTWEEKDAY(〃1997-10-0422:23:00〃);->5

SELECTWEEKDAYC1997-11-05");->2

SELECTDAY0FM0NTH(〃1998-02-03〃);->3

SELECTDAYOFYEARC1998-02-03");->34

SELECTMONTHC1998-02-03");->2

SELECTDAYNAMEC1998-02-05');-/February”

SELECTQUARTERC1998-04-01〃);->2

SELECTWEEKC1998-02-20");->7

SELECTWEEKC1998-02-20",0);->7

SELECTWEEKC1998-02-20",1);->

SELECTYEARC98-02-03z/);->1998

SELECTHOURC10:05:03");->10

SELECTMINUTE("98-02-0310:05:03〃);->5

SELECTSECOND("10:05:03");->3

SELECTPERIODADD(9801,2);->199803

SELECTPERI0D_DIFF(9802,199703);->ll

SELECTTO_DAYS(〃1997-10-07〃);->729669

SELECTTO_DAYS(950501);->728779

SELECTFROM_DAYS(729669)1997-10-07〃

SELECTUNIXTIMESTAMPC1997-10-0422:23:00,z)

>875996580

SELECTFROM_UNIXTIME(875996580);->〃1997-10-

0422:23:00"

SELECTSEC_TO_TIME(2378);->00:39:38

SELECTTIME_TO_SEC(〃00:39:38〃);->2378

9.怎樣截取中文且不出現(xiàn)亂碼?

答:如果安裝了mb擴展可使用mb_substr();可以使用以

下函數(shù):

functioncutstr(Ssourcestr,$startlength,$cutlength){

$returnstr="〃;$i=0;$n=0;

$strlength=strlen($sourcestr);〃字符串的字節(jié)數(shù)

while(($n=192){〃如果ASCH位高與192,

$returnstr=$returnstr.substr($sourcestr,$i,2);//|艮

據(jù)UTF-8編碼規(guī)范,將2個連續(xù)的字符計為單個字符

$i=$i+2;〃實際Byte計為2$n++;〃字串長度計1

}elseif($ascnum>=65&&$ascnum

10.對于大流量的網(wǎng)站,您采用什么樣的方法來解決訪問量

問題?

答:①最根本的是服務器硬件條件。服務器硬件設備如果

太差,那不管怎么優(yōu)化都是徒勞?、趯?shù)據(jù)庫進行優(yōu)化。主要

是減少對數(shù)據(jù)庫的訪問量。訪問過多會造成服務器CPU過度消

耗,導致服務器受訪能力嚴重下降,解決方法是是前臺使用靜

態(tài)或者動態(tài)緩存!

③防盜鏈。對于Apache服務器,主要是是用

modelrewrite模塊通過對URL的正則,進行限制和重定向!

④控制大文件下載。不提供超過2MB的文件下載,或使用

專門的下載服務器,或者上傳到web2.0共享網(wǎng)站上。

⑤多主機分流。將不同文件放置在不同的主機,提供鏡像

之類的文件下載方式。⑥是用專業(yè)的流量分析軟件。如google

流量分析。對網(wǎng)站進行精細的流量控制!

11.用PHP寫出顯示客戶端IP與服務器IP的代碼?

答:客戶端IP獲取$_SERVER[〃REMOTE_ADDR〃];服務端IP

12.如何修改SESSION的生存時間?

答:$lifeTime=24*3600;

session_set_cookie_params($lifeTime);sessionstart(

);

詳細的設置請查看這篇文章:PHP對session生存時間的

設置詳細介紹。

13.有一個網(wǎng)頁地址,比如PHP研究室主頁:如何得到它的內(nèi)

容?

答:$src=,,z,;$file=,,D:\\index.htrnl"7;

$content=filegetcontents($src);$hfile=fopen($file,w);

$result=fwrite($hfile,$content);

(2)$opsrc=fopen($src,r);$wfile=fopen($file,w);

$result=streamcopytostream($opsrc,$wfile);

14.在HTTPLO中,狀態(tài)碼401的含義是?;如果返回“找不

到文件”的提示,則可用header函數(shù),其語句為?

答:①HTTP/1.0401代表:未授權(quán)。②可用

header(〃HTTP/l.0404NotFound〃);15.在PHP中,heredoc是一

種特殊的字符串,它的結(jié)束標志必須?

答:

將這段代碼轉(zhuǎn)換為opcodes后.結(jié)果如下:

1:)

printr($arr);

將看到遍歷數(shù)組后,數(shù)組中每一元素的值都被修改.

在函數(shù)(或方法)傳參中,將一變量作為參數(shù)時\是以引用的

方式傳處,還是值的方式傳入,主要表現(xiàn)形式是在

sample_call_function($varname)還是

samplecallfunction(&$varname)上.

從概念上分析,值傳遞是對內(nèi)容進行〃拷貝〃,引用傳遞是用

內(nèi)容進行〃建立快捷方式〃,所以很多答題答案都講值傳遞要復制

一次內(nèi)存數(shù)據(jù),引用傳遞則省去了這個消耗,所以更劃算.

但從PHP底層處理方式來看,這種結(jié)論回答略顯草率了.PHP

底層對于變量內(nèi)存管理是基于常見的copyonwrite(寫時復制)

和changeonwrite(改變時復制).所以對于

$val=z,test,z;

debug_zval_dump($val);

在函數(shù)debug_zval_dump中使用到的$val,并不會多開辟一

塊內(nèi)存空間來存放〃test〃的內(nèi)容.但對于

$val="test";$a=&$val;

debug_zval_dump($val);

則又有不同,這時傳參的$val則會新開辟一塊內(nèi)存空間來

存放〃test”.這在PHP源碼包,zend_execute.c中有完整的處理

流程.

題目三:include和require的區(qū)別是什么?

官方手冊中對此的描述是:這兩種結(jié)構(gòu)除了在如何處理失敗

之外完全一樣。include。產(chǎn)生一個警告而require。則導致一

個致命錯誤。

這個解釋其實已經(jīng)相當詳細了.當引用一個外部文件口寸,如

果這個文件打開出錯,require將直接中止程序,并拋出一個

FatalError,而include只會拋出一個warning,并繼續(xù)執(zhí)行

include下面的語句.

另外.我在一些網(wǎng)站上看到過對include和require區(qū)別做

出的如下解釋:

require。函數(shù)工作方式與XSSI相類似;不管在程序的哪

個部分使用了這個函數(shù),只有程序一開始運行,頭文件的內(nèi)容

就被作為程序本身的一部分來處理。因此,如果您在一個條件

判定語句中使用了require。函數(shù),那么即使這個條件即使不

為真,頭文件也會被包含進來。

而include。函數(shù)只是在執(zhí)行到這一條語句時才會把頭文

件內(nèi)容包含進來。如果程序沒運行到這里,那PHP是不會管它

的。這就意味著,您在條件判定部分使用include時、它會完

全按照您希望的那樣工作。

那么這條解釋的正確性究竟如何,我們可以做2個小實驗:

文件名:1.php

假設我們只有Lphp,沒有2.php按照上述說法,當條件不

為真時,文件也被包含進來,那么因為2.php根本不存在,所以必

然程序會報錯.但是上述程序的執(zhí)行結(jié)果顯然否定了按上述說法

進行的推理.

第二個實驗,使用工具,查看上述代碼最終生成的opcode:

1:將這兩者比較而言,COOKIE數(shù)據(jù)由于存放在客戶端,減輕

了服務器端存儲方面的壓力.但數(shù)據(jù)的安全性相對來說就耍差一

些.所以如果依靠COOKIE存放用戶登錄信息等敏感數(shù)據(jù)時,一定

要對其做加密處理.而SESSION數(shù)據(jù)存放在服務器端,客戶端本

身訪問不到直接數(shù)據(jù),安全性相對COOKIE來說稍稍好一些.但對

服務器的10操作及存儲方面會帶來一些壓力.尤其是PHP默認

的SESSION處理機制,實際上就是將SESSION數(shù)據(jù)串行化,然后

存放到一個以SESSION_ID為名字的文本文件中,用戶量多的情

況下帶來的開銷不容忽視.好在PHP的SESSION機制是非常靈活

的,提供了相應方法改變SESSION處理機制,比如放到

memcached里或其它地方:-)這得另開文章單獨講了.

題目一:mysqlpconnect與mysqlconnect的區(qū)別在哪里?

哪一個更好這道題涉及到了數(shù)據(jù)庫長連接的概念.我們知道,PHP

腳本的運行機制,每次使用數(shù)據(jù)庫之前,都必須使用connect去

連接數(shù)據(jù)庫,而web應用又是并發(fā)性非常高的應用場景,如果同

時有10個用戶訪問,便會有10個進程在運行腳本,相應的,就會

產(chǎn)生10次數(shù)據(jù)庫連接.如果有100個用戶同時訪問.那么就自然

會產(chǎn)生100次數(shù)據(jù)庫連接.這樣便會有兩個問題產(chǎn)生:1是頻繁

建立和撤消數(shù)據(jù)庫連接.本身的開銷就非常大,2是數(shù)據(jù)庫的同

時連接數(shù)是有限的.如果有1000個用戶請求同時要訪問數(shù)據(jù)庫.

而數(shù)據(jù)庫只開放了最高100個連接允許的話,那么就有900個會

進入等待或失敗的隊列.這就好比是,一群搬運工往屋里搬東西,

每一次都需要開門-->搬東西一>關門的操作,如果有很多搬運工

同時搬,每個人都要執(zhí)行開門/關門這兩步操作的話,顯然是會產(chǎn)

生很大的不必要開銷.而且如果這道門能同時通過的人數(shù)有限,

很多搬運工不得不在外等待.

pcconnect的長連接方式是怎么解決這個問題的呢?

官方手冊中對此的描述是:在腳本結(jié)束運行時不關閉的連接。

當收到一個永久連接的請求時。PIIP將檢查是否已經(jīng)存在一個

(前面已經(jīng)開啟的)相同的永久連接。如果存在,將直接使用

這個連接;如果不存在,則建立一個新的連接。所謂“相同”

的連接是指用相同的用戶名和密碼到相同主機的連接。

其機制無非是:初次連接數(shù)據(jù)庫時,便將連接句柄交至父進

程,子進程要使用數(shù)據(jù)庫連接時,直接將父進程手中早已連接好

的句柄交給子進程,這樣子進程的連接就成了一種〃虛連接〃-一

它并不用真正去與數(shù)據(jù)庫通訊,只需要從父進程手中拿到已經(jīng)打

開的連接句柄,這樣就大大節(jié)省了連接/關閉的開銷.另外,多個

子進程,共享父進程的連接句柄,這樣實際上數(shù)據(jù)庫對外的連接

數(shù),只是跟父進程之間的個數(shù),1000個用戶請求,會產(chǎn)生1000個

子進程,可能只會產(chǎn)生10個父進程,有10個數(shù)據(jù)庫連接.這樣就

解決了連接數(shù)的問題.

這樣看來.長連接的確是很不錯的方式.從機理上講好于

connect.所以長連接更好一些.但事實是并不能這樣簡單論定

的:-),繼續(xù)深入下去.

首先,長連接的機制是基于父-子進程模式,也就是說,只能

跑于模塊(apache-phpmodule或iis的isapi)方式,不適用于

CGI和CLI模式,因為CGI和CLI模式都是單獨進程,執(zhí)行完就

關閉,沒有父進程控制.也就談不上長鏈接.

另外,由于多個子進程共用父進程的連接句柄,有時會出現(xiàn)

一些意外,比如某個子進程由于一些原因,造成一個連接句柄死

鎖,便會搞得共享這個句柄的所有其它子進程都無法使用數(shù)據(jù)庫.

這時候只有重啟web服務才能恢復.

優(yōu)缺點都擺明了出來.至于用哪一個,大家自己根據(jù)情況選

擇吧.

題目二:CGI模式,模塊模式與CLI模式運行PHP的區(qū)別以

CGI方式運行時,webserver將用戶請求以消息的方式轉(zhuǎn)交給

PHP獨立進程,PHP與web服務之間無從屬關系.

純粹調(diào)用一返回結(jié)果的形式通訊.而模塊方式,則是將P1IP

做為web-server的子進程控制,兩者之間有從屬關系.最明顯的

例子就是在CGI模式下,如果修改了PHP.INI的配置文件,不用

重啟web服務便可生效,而模塊模式下則需要重啟web服務.

CLI則是命令行接口,用于在操作系統(tǒng)命令行模式下執(zhí)行

PHP,比如可以直接在win的cmd或linux的shell模式下直接

輸入phpa.php來得到結(jié)果.它與CGI模式最大的不同的地方在

于既不會輸出HTTP頭信息(CGI模式除了輸出用戶能看到的結(jié)

果外,還會輸出用戶不能直接看到的HTTP頭信息),拋出的信息

也直接以文本方式而不以HTML方式給出,比如新建一個

test,php,

寫入內(nèi)容,在瀏覽器中可以看到以HTML表格描述的信息,而

在命令行輸入phptest.php則會直接看到純文本的輸出.

題目三:用PHP實現(xiàn)一個雙向隊列?(騰訊公司面試題)上次

有人問過我這道題,我個人認為用數(shù)組函數(shù)處理這道題綽足有余

了.

以上四個函數(shù)已實現(xiàn)雙向隊列的四個基本操作.可以寫一個

class將其封裝起來即可.

題目四:遍歷一個目錄及其子目錄(新浪公司面試題)與網(wǎng)上

普遍給的代碼不同,這道解答,我用了PHP5更安全的scandir函

數(shù),以及迭代(foreach)和遞歸.

各位自己研究吧.未負責的測試/經(jīng)驗感覺應該比網(wǎng)上普遍

的要快一些些.

foreach(scandir($rDir)as$v){

if($v=二〃?〃||$v=二〃??〃)continue;

is_dir($rDir.〃/〃.$v)?$r[$v]=showDir($rDir.〃/〃.$v):1

;}

return$r;)

printr(showDir(z,.,z));?>

-PHP/MYSQL知識

1、用PHP打印出前一天的時間格式是201*-1-188:30:30

答案:date(/zY-m-dH:i:s〃,strtotimeC-ldaysz,)):

2、echo(),print(),printr()的區(qū)別

答案:echo是PHP語句,print和print_r是函數(shù),語句沒

有返回值,函數(shù)可以有返回值print()只能打印出簡單類型變

量的值(如int,string)print_r()可以打印出復雜類型變量

的值(如數(shù)組,對象)echo輸出一個或者多個字符串

3、能夠使HTML和PHP分離開使用的模板,你使用過什么

模板?答案:Smartydiscuz等等他們的原理都是變量替換。

4、你使用過框架模式嗎?寫出你接觸過的框架。答案:

thinkphpfleaphpqeephpzend等等

5、使用哪些工具進行版本控制?答案:最常見的是SVN

6、如何實現(xiàn)字符串翻轉(zhuǎn)?答案:使用函數(shù)strrev()

7、優(yōu)化MYSQL數(shù)據(jù)庫的方法。

答案:要點:1,數(shù)據(jù)庫中的表越小,在它上面執(zhí)行的查詢

也就會越快

2.盡量把字段設置為NOTNULL,這樣在執(zhí)行查詢的時候,

數(shù)據(jù)庫不用去比較NULL值

3.使用連接(JOIN)來代替子查詢

4.使用聯(lián)合(UNION)來代替手動創(chuàng)建的臨時表5.使用外鍵

索引

6.對查詢語句進行優(yōu)化8、實現(xiàn)中文字串截取無亂碼的方

法。

答案:直接使用PHP函數(shù)substr截取中文字符可能會出現(xiàn)

亂碼,解決辦法:1、使用mbstring擴展庫的mb_substr截取

就不會出現(xiàn)亂碼了。2、自己書寫截取函數(shù),但效率不如用

mbstring擴展庫來得高。

3、如果僅是為了輸出截取的串,可用如下方式實現(xiàn):

substr($str,0,30).chr(0)o

二PHP/MYSQL編程

1某內(nèi)容管理系統(tǒng)中,表message有如下字段id文章

idtitle文章標題content文章內(nèi)容

category_id文章分類idhits點擊量

創(chuàng)建上表,寫出MySQL語句答案:

CREATETABLE'wt_ceshi2'(

'id'INTNOTNULLAUTO_INCREMENTPRIMARYKEY,'title'VARCH

AR(127)N0TNULL,'content'VARCHAR(127)NOTNULL,'category_i

d'INTNOTNULL,'hits'INTNOTNULL)

2同樣上述內(nèi)容管理系統(tǒng):表comment記錄用戶回復內(nèi)容,

字段如下comment_id回復id

id文章id,關聯(lián)message表中的idcommentcontent回復

內(nèi)容

現(xiàn)通過查詢數(shù)據(jù)庫需要得到以下格式的文章標題列表,并按

照回復數(shù)量排序,回復最高的排在最前面

文章id文章標題點擊量回復數(shù)量

用一個SQL語句完成上述查詢,如果文章沒有回復則回復

數(shù)量顯示為0答案:

$sql=mysql_query("SELECTid,title,hits,count(commen

t_id)asnumFROMmessageaLEFTJOINcommentbONa.id=b.comment

idORDERBYnumDESCn;While($result=mysqlfetcharray($sq

D){

$num=0;

If($result[num])

$num=$result[num];

$dispMemo.=”

$result[id].v.$result[title].vv.$result[hits].vv

?$num."";}

三、PHP程序

1.寫出以下程序的輸出結(jié)果$a=$b>$c?4:5;echo$a;?>

答案:4

2,寫出以下程序的輸出結(jié)果

答案:Hotdogok

四簡答題

1.在PHP中,當前腳本的URL怎么???上一個頁面的URL

怎么寫?答案:當前

URL:〃http:〃〃.$SERVER:"HTTPHOST"].$SERVER[Z,P1IPSELF”

].〃?〃?$_SERVER["QUERY_STRING〃];上一個頁面URL:

$_SERVER[〃HTTP_REFERER〃]

2.在HTTP1.0中,狀態(tài)碼401的含義是?如果返回“找不

到文件”的提示,則可用header函數(shù),其語句怎么寫?

答案:401表示未授權(quán);header(“HTTP/l.0404NotFound

“);

3,數(shù)組函數(shù)arsort的作用是?語句errorreporting()

的作用是?

答案:arsort:對數(shù)組進行逆向排序并保持索引關系

e門x)r_reportingO的作用是:打印錯誤等級4.寫出一個正則表

達式,過慮網(wǎng)頁上的所有JS/VBS腳本。答案:$script="以下

內(nèi)容不顯示:〈scriptlanguage='javascript?〉alert(J

cc');〈/script〉”;echopreg_replace("/

〈script廠〉].*?〉.*?(/script>/si","替換內(nèi)容

”,$script);

5.語句include和require都能把另外一個文件包含到當

前文件中,它們的區(qū)別是什么?;為了避免多次包含同一文件,

可以什么語句來代替它們?

答案:在如何處理失敗時,include。產(chǎn)生一個警告而

require()則導致一個致命錯

誤;require^once()/includeonce()

6.類的屬性可以序列化后保存到session中,從而以后可

以恢復整個類,這要用到的函數(shù)是?

答案:serialize()/unserialize()

7.SQL中LEFTJOIN的含義是什么?如果tbl_user記錄了

學生的姓名(name)和學號(ID),tbl,score記錄了學生(有的

學生考試以后被開除了,沒有其記錄)的學號(ID)和考試成績

(score)以及考試科目(subject),要想打印出各個學生姓名及

對應的的各科總成績,則可以用SQL語句?答案:

自然左外連接

createdatabasephpinterview;usephpinterviewcreaterab

letbl_user(

IDintnotnull,namevarchar(50)notnull,primarykey(ID));

createtabletblscore(

IDintnotnull,scoredec(6,2)notnull,subjectvarchar(20

));

insertintotbluser(ID,name)values(1,beimu);inser二in

totbluser(ID,name)values(2,aihui);

insertintotblscore(ID,score,subject)values(1,90,'

文,);insertintotblscore(ID,score,subject)values(1,80,

數(shù)

學’);insertintotbl_score(ID,score,subject)values(2,86,

數(shù)

學’);insertintotblscore(ID,score,subject)values(2,96,

文');selectA.id,sum(B.score)assumscorefromtbluserAlef

tjointblscoreBonA.ID=B.IDgroupbyA.id

8,寫一個函數(shù),能夠遍歷一個文件夾下的所有文件和子文

件夾。答案:〈?php

functionmyscandir($dir){

$files=array();if(is_dir($dir)){

if($handle=opendir($dir)){

while(($file=readdir(Shandie))!"false){

if($file!=“&&$file!=".?"){

if(is_dir($dir."/".$file)){

$files[$file]=my_scandir($dir.u/.$file);}else{

$files[]=$dir.a/u.$file;}}

notnull)

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

printr(myscandir("D:ProgramFilesInternetExplorer

MUI"));?)

9.簡述論壇中無限分類的實現(xiàn)原理。

答案:表中建一個對應父類的ID,然后進行關聯(lián)。

PHP面試題匯總

面試題1

1、用PHP打印出前一天的時間格式是201*-5-

1022:21:21printdate(,/Y-m-d,z,time()-86400);

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

echo語言結(jié)構(gòu),print/print_r是函數(shù).print是一般性輸

出,print_r輸出包含底層類型.

3、能夠使HTML和PHP分離開使用的模板

4、如何實現(xiàn)PHP、JSP交互?

5、使用哪些工具進行版本控制?cvs,subversion

6、如何實現(xiàn)字符串翻轉(zhuǎn)?printstrrev(/zabcz,);

7、優(yōu)化MYSQL數(shù)據(jù)庫的方法。

針對經(jīng)常用到的關鍵列多做索引,explain

8、談談事務處理

事務處理是指連續(xù)性的動作不可被打斷的過程,事務處理失

敗會撤銷相應的影響

9、apachemysqlphp實現(xiàn)最大負載的方法

主要是配置文件的優(yōu)化了,另外用linux跑要比用

windows跑效果好一點。條件允許的話,將mysql和apache分

離開不用同一臺機器跑也好一點。??.軟件角度的提升,不如硬

件角度的提升來得快

10、實現(xiàn)中文字串截取無亂碼的方法。mb_substr(,這樣

一來我的字符串就不會有亂碼了',0,7,'utf-8,);中文是

gb2312還是utf8?

gb2312和utf8特點判斷下就可以了.

面試題2

var$empty=〃";var$null=NULL;var$bool=FALSE;var$no^Se

t;

var$array=array();1.

$a=\\,,hello\\/,;$b=&$a;unset($b);$b=\\〃world\\〃;what

is$a?

〃hello〃2.

$a=l;$x=&$a;$b=$a;whatis$b?13.

$x=empty($array);whatis$x?trueorfalsetrue

4.您是否用過版本控制軟件?如果有您用的版本控制軟件的

名字是?是.cvs,subversion.

5.您是否用過模板引擎?如果有您用的模板引擎的名字是?

是.smarty

6.請簡單闡述您最得意的開發(fā)之作.

7.對于大流量的網(wǎng)站,您采用什么樣的方法來解決訪問量問

題?

針對動態(tài)性不強的ye,可以生成靜態(tài)的;交互性強的,沒多

少辦法,我仍然相信性能角度投資軟件不如投資硬件.

8.用PHP寫出顯示客戶端IP與服務器IP的代碼:

print$_SERVER[,/remote_addr/,].$_SERVER[〃server_addr〃

];

面試題3

一、PHP/MySQL編程

1)某內(nèi)容管理系統(tǒng)中,表message有如下字段id文章

idtitle文章標題content文章內(nèi)容

category_id文章分類idhits點擊量

創(chuàng)建上表,寫出MySQL語句DROPTABLEIFEXISTSmessage;

CREATETABLEIFNOTEXISTSmessage(

idINTNOTNULLAUTO_INCREMENT,

titleVARCHAR(200)NOTNULLDEFAULT,,Z,,contentTEXT,

category_idINT,#這里估計還要改,暫時放下hitsINT,

PRIMARYKEY(id));

CREATEINDEXmessage_ti11e_indexONmessage(title);

2)同樣上述內(nèi)容管理系統(tǒng):表comment記錄用戶回復內(nèi)容,

字段如下comment_id回復id

id文章id,關聯(lián)message表中的idcommentcontent回復

內(nèi)容

現(xiàn)通過杳詢數(shù)據(jù)庫需要得到以下格式的文章標題列表,并按

照回復數(shù)量排序,回復最高的排在最前面

文章id文章標題點擊量回復數(shù)量

用一個SQL語句完成上述查詢,如果文章沒有回復則回復

數(shù)量顯示為0

SELECTm.id,m.title,m.hits,count(comment.id)astotalF

ROMmessagemLEFTJOINcommentON(m.id=comment.id)GROUPBY(m.

id)ORDERBYtotalDESC;

3)上述內(nèi)容管理系統(tǒng),表category保存分類信息,字段如

categoryidint(4)notnullauto_increment;categroy_nam

evarchar(40)notnull;

用戶輸入文章時,通過選擇下拉菜單選定文章分類

寫出如何實現(xiàn)這個下拉菜單

純javascript(php取出所有分

類),javascript/post/php,javascript/ajax/php...

二、PHP文件操作1)

上述內(nèi)容管理系統(tǒng):用戶提交內(nèi)容后,系統(tǒng)生成靜態(tài)HTML

頁面;寫出實現(xiàn)的基本思路if(!fileexists($htmlfile)){

ob_start();

$html=obgetcontents();fileputcontents($file,$ht

ml);obendclean;}

header(''Location:,z.$html_file);exit;

2)簡單描述用戶修改以發(fā)布內(nèi)容的實現(xiàn)流程和基本思路

三、PHP程序

1)寫出以下程序的輸出結(jié)果

$b=201;

$c=40;

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

echo$a;?>4

2)寫出以下程序的輸出結(jié)果$st廠\\〃cd\\〃;

$$str=\\/zhotdog\\/z;

$$str.=\\〃ok\\”;

echo$cd;?>

hotdogok

面試題4一.簡答題

L請說明php中傳值與傳引用的區(qū)別。什么時候傳值什么

時候傳引用????拷貝消耗比較大時用引用

2.在PHP中errorreporting這個函數(shù)有什么作用?控制

錯誤輸出級

3.請寫一個函數(shù)驗證電

溫馨提示

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

評論

0/150

提交評論