第一篇:PHP復習資料
PHP復習資料
填空題
1.在PHP中,加入注釋的方法很靈活,單行注釋有 // 和 # 兩mysql可以方便地對數據庫進行各種操作。
13.在continue和break語句中,名詞解釋
1. 構造函數: 在類中定義的、種方法,多行注釋可以使用“/* */”實現。
2.在PHP中,變量以符號 $ 開頭,該符號告訴PHP這是一個變量。
3.在PHP中,使用關鍵字function來定義自己的函數,可以有傳回值也可以無傳回值。4.在類中,與類同名的方法稱為構造方法,該方法在創建類的實例時調用。
5.strrev()函數是用于將一個字符串翻轉,如strrev(“elppa”)的結果為”apple”。
6.strlen()函數用于計算字符串的長度。
7.在PHP中,函數nl2br()可以將字符串中的換行符“n”替換為HTML中的“
”標記。8.在打開一個文件后,可以使用fputs()和fwrite()這兩個函數將數據寫入到文件中。9.在PHP中,向數據庫發送SQL查詢有兩個函數:分別是mysql_query()和
mysql_db_query()。
10.授權語句”grant select on eshops.customers
to
lbs@llocalhost”,表示授予本地主機中的用戶數據庫eshops的customers表具有select權。
11.MySQL數據庫的最大魅力在于它是自由軟件。
12.mysql是MySQL自帶的一個標準數據庫客戶端程序。使用
continue語句用來跳出本次循環,break語句用來跳出當前循環。
14.在用戶自定義函數中使用的PHP變量默認被設為局部變量,它只能在函數內部使用。15.mysql_num_rows()函數用于獲取總行數,mysql_num_fields()函數用于獲取總字段數。16.與mysql_fetch_array()函數相比,mysql_fetch_row()的執行速度更快。
17.mysql_data_seek()函數用于將記錄指針移到指定的行。18.PHP函數mysql_list_dbs()與SQL語句show databases等效。
19.MySQL是真正支持多平臺的,如Linux、OS/
2、MacOS、Windows94/98/NT/2000等,使跨平臺成為可能。
20.為了判斷文件指針是否指向文件結尾,可以使用feof()函數。21.為了獲得當前時間“2007年12月15日”,可以使用getdate()函數來實現。22.變量的作用域就是它的有效范圍,”global”是用來聲明全局變量的。
23. 數學函數dechex()是用于將數從十進制轉換成十六進制。24.在PHP中,引用頭文件可以使用require()和include()這兩個函數,我們可以在循環中使用include()函數,將不同文件的內容包含進來。
與類同名的方法,該方法在創建類的實例時會自動被調用。
2. 靜態變量: 僅存在于函數
中的變量為靜態變量。和局部變量一樣,它僅作用于某個局部范圍,但是當函數執行完時,靜態變量的值不會丟失,這一點和全局變量相同。
3. 變量的引用賦值: 變量的引用賦值就是指引用變量的地址,導致兩個變量指向同一個內存地址,使用對一個變量值的修改會導致對另一個變量值的修改。4. PHP:
PHP
是
PHP:HyperText Preprocessor的縮寫,其中冒號前面的PHP又是Personal Home Page的縮寫。PHP是一種開放源代碼的、免費的、嵌入式服務器腳本語言,它混合了C、Java、Perl等的語法,并加入了自創的一些新語法,語言的整體風格類似于C。5.
簡答題
1.談談你是如何理解對象和類,以及兩者的關系。
答:(1)對象可以是人們要進行研究的任何事物,它不僅能表示具體的事物,還能表示抽象的規則、計劃或事件。每個對象都有自己的狀
態和行為。
(2)類是具有相同或相似性質的對象的抽象。類具有屬性,它是對象狀態的抽象,用數據結構來描述;類具有操作,它是對對象行為的抽象,用操作名和實現該操作的方法來描述。
(3)對象和類的關系:對象的抽象是類,類的具體化就是對象,也可以說類的實例就是對象。
2.請解釋下面的程序并給出程序的運行結果。
function makeup($type=”果汁”){echo “給我一杯
$type!
”;
}
echo makeup();
echo makeup(“可樂”);?>
答: 第一步:在該程序中首
先定義了一個makeup()函數,并為函數的參數$type設置了一個默認值“果汁”。
第二步:在第一條輸出語句中調用該函數時,由于未提供參數,所以就使用默認值“果汁”,輸出結果為“給我一杯果汁!”。
第三步:在第二條輸出語句中再次調用該函數時,由于提供了參數值“可樂”,所以不會使用默認值,輸出結果為“給我一杯可樂!”。該程序的運行結果為: 給我一杯果汁!給我一杯可樂!
3.使用MySQL數據庫時,如何在命令行界面實現數據的導入與導出?請各列舉兩種方法,并舉例說明。
答: 導入:將D盤eshops.sql文件中所有數據導入數據庫test中
方法一:使用source命令 語法:source 文件名;舉例:use test;source “d:eshops.sql”;方法二:使用客戶端程序mysql
語法:mysql 數據庫名 <文件名;
舉例:mysql –u 用戶名 –p test 導出:將數據庫test中的所有數據導出到D盤eshops.sql文件中 方法一:使用“select ?into outfile”語句 舉例:select * from test.表名 into outfile ‘d:/eshops.sql’; 說明:每一張表數據的導出都要用一條選擇語句來實現 方法二:使用mysqldump工具 語法:mysqldump [開關參數] 數據庫名 [表名] >文本文件名 舉例:mysqldump –u 用戶名 –p test >d:eshops.sql;4.連接數據庫服務器的PHP函數有兩個,mysql_connect()和mysql_pconnect(),它們有何區別? 答: mysql_connect()和 mysql_pconnect()函數都可以用來連接數據庫服務器,兩者的語法基本相同,區別在于: (1)當數據庫操作結束后,mysql_connect()函數建立的連接將自動關閉,而mysql_pconnect()函數建立的連接將繼續存在,是一種持久的連接; (2)mysql_pconnect()函數在每次連接前都會檢查是否使用同樣的主機名、用戶名和密碼連接,如果有,則直接使用這個連接號; (3)mysql_connect()函數建立的連接可以用mysql_close()函數來關閉,而用mysql_pconnect()函數建立的連接不能用mysql_close()函數來關閉。 論述題 1.請談談學習網頁設計語言PHP后的心得體會。答: PHP課后習題 第一章自測題 一、單選題 1.動態網站隸屬性下面哪一種軟件開發形式() A.應用程序開發 B.C/S架構軟件 C.嵌入式程序開發 D.B/S架構軟件 2.在下面的選項中,哪一種Web構建在開發動態網站時通常用于接收井處理用戶事件() A.HTML B.CSS C.JavaScript D.PHP 3.下面幾個后臺腳本編程語言中,哪個屬于開源的軟件() A.ASP B.PHP C.JSP D.CGI 4.下面幾個Web構建中,哪個可以直接作為數據庫的客戶端應用處理數據庫中的數據() A.JavaScript B.Apache C.Linux D.PHP 5.用于調整網頁的外觀和布局的Web構建是下面選項中的哪一個() A.PHP B.JavaScript C.CSS D.XML 6.構建一個網站開發平臺,希望具有簡易性、低成本、高安全性、開發速度快并且執行靈活,可以選擇下面選項中哪一種網站開發平臺() A.ASP.NET B.J2EE C.LAMP D.CGI 7.下面選項中,哪個不屬于URL的組成部分() A.傳輸協議 B.主機 C.端口 D.Internet 8.如果選用LAMP平臺開發Web程序,下面選項中不能使用PHP處理的工作是() A.接收用戶表單 B.處理用戶事件 C.圖像處理 D.生成HTML輸出 9.在下面的選項中,可以由Web服務器Apache完成的工作是哪一個() A.解析PHP文件 B.連接處理數據庫 C.主動建立與客戶端連接 D.發布網站 10.在下面的選項中,對MySQL數據庫描述不正確的是() A.MySQL屬于C/S結構軟件 B.在LAMP組合的開發平臺中,MySQL用于保存網站中的內容數據 C.可以使用PHP作為MySQL客戶端程序連接并處理MySQL服務器 D.MySQL服務器必須和Apache服務器以及PHP應用服務器安裝在同一臺電腦中 二、練習題 1.了解B/S軟件體系結構的特點。 2.掌握動態網站開發所需要的Web構件,及每種構件在Web開發中的用途。3.了解網站的運行過程,Web的王作原理 4。了解HTTP請求/響應模式的過程,及URL的作用 5.探索LAMP組合的特性及應用領域 第二章自測題 1.下載最新版本的源代碼包,在Linux操作系統下為自己安裝一個最好的LAMP運行平臺,并配置好phpMyAdmin。 2.下載各種軟件的最穩定版本,在Windows操作系統中獨立安裝屬于自己的PHP T作平臺,要求設置好每個軟件的安裝路徑,井配置好phpMyAdmin。 3.挑選一種自己喜歡的PHP及相關軟件的集成版本,安裝并進行設置。 4.不管是安裝的哪一種開發環境,找到Apache、MySQL、PHP的安裝目錄和它們的配置文件,以及網頁發布目錄的位置。 第三章自測題 一、單選題 1.Apache是()服務的服務器程序 A.www.tmdps.cn)A.strchr, split,var_dump B.strstr,explode, print_r C.srrstr,explode, echo D.Strchr,split, var,_dump 5.下面哪個正則表達式,可以從服務器上取到訪問域名第二層()A.preg_replace(“/.*([^.V]+)(.(comlnetlorg))?.[^.V]+$/”,“1”, $_SERVER['HTTP_ HOST'])B.preg_replace(“/.*?([^.V]+)(.(comlnetlorg))?.[^.V]+$/”,“1”,$_SERVER['HTTP_ HOST'])C.preg_replace(“/.*([^.v]+)(.(comlnetlorg))?.[^.V]+$/”,“1”,$HTTP HOST)D.preg_replace(“/.*?([^.V]+)(.(comInmlorg))?.[^.V]+$/”,“1”,$HTTP_HOST)PHP中,下列哪個函數是將字符串前后顛倒()A.strrev() B.strrpos()C.strstr() D.sirfiirst()6.下列那個選項是正確的引用文件的方法:()A.require和include B.re:quire和function C.define和include D.function和include 7.以下字符的長度是() $text=“ tllo ”; echo strlen(trim($text)); ?> A.9 B.5 C.7 D.3 8.將字符串中所有英文單字的開頭字母轉換為大寫的函數應該是()A.ucfrrst(“字符串”) B.strtolower()C.strtoupper() D.ucwords() 二、練習題 1.寫出一個函數驗證電子郵件的格式是否正確。 2.寫出一個正則表達式,過濾網頁上的所有JavaScript/VBScript腳本(即把script標記及其內容都去掉)。3.編寫一個PHP腳本程序,用于接受用戶在表單中的輸入,井要求在該腳本中進行數據效驗(在客戶端表單中有以下字段和需要效驗的格式)。 Name 請輸入你的名字,單行,32個漢字以下.8個漢字以上 Title 請輸入標題,單行,64個漢字以下,不能為空 Body 輸入文本內容,多行,不限 E-mail 請輸入郵件地址,按電子郵件格式效驗 Birthday請輸入生日,按YYYY-MM-DD格式效驗 第八章自測題 自測題 一、單選題 1.以下哪個錯誤級別會使程序崩潰,阻止并退出程序()A.E_WARNING B.E_NOTICE C.E_ERROR D.以上都可以 2.下面劉PHP錯誤日志描述不正確的是() A.可以錯誤記錄到Apache服務器的錯誤日志文件error.log 中 B.記錄錯誤日志到自己指定的文件中 C.可以將錯誤日志發送給系統syslog D。在寫入錯誤日志之前,應該先在PHP配置文件中將displa y_errors選項開啟 3.關于PHP 5中的異常,下列四句描述中哪句是錯誤的() A.異常也是一個類 B,為了拋出我們自建的異常,我們必須使用throw語句實現 C.異常在拋山后會在父一層被自動消滅掉 D.要容忍某些特定的異常,我們應該使用try?catch語法的同時,留空catch段 4.下面哪個函數不能返回UNIX時間戳() A.Time() B.strtotime() C.localtimeo D.gmrnktime()5.當前GMT時區的時間戳和當前本地的時間戳,在秒上有什么區別() A.這取決于本地時區和GMT時區之間小時數的差別 B.沒有任何區別 C.本地時區和GMT時區完全匹配時才相等 D.沒有可比的地方 6.以下哪一個是最簡單的方式將microtime()轉化輸出為一個單一的數值() A.$time=implode(' ',microtime()); B.$time=explode(' ',microtime());$time=$t.ime[0]+$time [1]; C.$time=microtime()+microtime(); D.$time=arr ay_sum(explode(' ',microtime()));7.下面程序運行結果為() $nextWeek=timeO+(7*24*60*60); echo 'Now:'.date('Y-m-d').“n”; echo 'Next Week:'.date('Y-m-d',$nextWeek).“n”; ?> A.得到今天的日期(月-曰) B-得到今天的U期(年-月-U)與下周的日期(年-月-日) c.得到現在的時間(小時-分-秒) D.得到現在到下周的時間間隔 8.使用PHP的GD函數庫動態創建圖像時,需要先獲取圖像資源,下面函數中哪一個不能創建圖像資源() A.imagecreate() B.imagec:reatetruecolor() C.imagecreateflromjpeg() D.imagecolorallocate() 二、練習題 1.簡述PHP中error_reporting函數的作用是什么。 2。使用PHP的日期和時間函數,打印出“前一天“的日期和時問信息(輸出可以參考2009-5-12 11:05:30格式)。 3.使用PHP的GD函數庫編寫一個具有縮放圖片和添加水印功能的類(要求支持中文水印)。 第十一章自測題 一、單選題 1.怎樣打開或創建一個文件() A.open() B.fopen() C.fwriteo D,write()2.下面哪兩個參數用來提示fopen()函數打開一個文件進行讀取并寫入() A.w B.r c.a D.+ 3.哪個函數用來從文本文件里面讀取一個單獨的行,但是當你需要讀取二進制數據或者其他格式的文件的時候,你需要使用哪個函數() A.fgets(),fseeko B.freda(),fgets0 C.fputs(),fgets() D.fgets0,fread()4.下面代碼中file_ exists的意義是() $ filename-‘/path/to/foo.txt’; Iq(file_exists($fil.encame)){ Echo“The file $filenfune exists”; }else{ echo “Thcfile$filename does not exist”;) ?> A.測試字符串 B.測試數組 C.測試變量 D.測試一個文件是否存在 5./tmp是上傳文件的默認存儲目錄,如果更改這個目錄需要編輯哪個文件的哪個屬性值(A.php.ini文件的upload_tmp_dir屬性 B.php.ini文件的uploaud_dif屬性 c-php,conf文件的upl'oad_tmp_dir屬性 D.php+conf文件的upload_dir屬性 6.以下代碼運行結果為() php $fp=fopen(”/etc/passwd“,”rt“); $data=fgets($fp,12); echo ftell($fp); fclose($fp); ?> A.13 B.11 C.0 D.10 7.File()函數返回的數據類型為() A.數組 B.字符串 C.整型 D.根據文件來定 8.PHP中刪除文件的函數是() A.rm B.del C.unlink D.rm-if 9.PHP中,可以用來接收上傳的文件的函數是() A.$一FILES B-copys C.is_uploadnle D-move_uploaded_file 10.PHP中用來刪除當前日錄的函數是() A.chdir B.cd C.opendir D.rmdir =、練習題 1.使用PHP的文件處理函數實現網頁靜態化功能。 2.寫一個函數,能夠遍歷一個文件夾下的所有文件和子文件夾。 3.在沒有數據庫的環境下,以文件替代數據庫實現一個完整的網頁留言板功能。 第十二章自測題 一、單選題 1.下列哪些數據庫管理系統是PHP不支持的()A.MySQL B-IBM DB2 C.PostgreSQL D.Microsoft SQL Server E.以上沒有一個PHP不支持 2.請看下面的SQL查詢語句,選擇哪兩項可以減少從數據庫返回的數據量()SELECT*FROM MY —TABLE A.轉為存儲過程 B.用具體的字段名來代替“*” c.加一個“wnere”語句 D.轉變查詢為視圖 E.使用預語句 3.下面哪個不是一個合法的SQL的歸類函數() A.AVG B.SUM C.MIN D.MAX E.CURRENT_DATEO 4.mysql_affected_rows()對哪個操作沒有影響() A.SELECT B.DELETE C, UPDATE D.INSERT 5.取得搜索語句的結果集中的記錄總數的函數是() A.Mysql-fetch-row B.mysql-u root password tcst C.mysql_num-rows D.mysql-u root-password test 6.mysql_insert_id()函數的作用是() A.盤看下一次捅入記錄時的ID號 B.查看剛剛插入過的自動增長ID值 C.查看一共做過多少次insert操作 D.查看一共多少條記錄 7.修改MySQL崩戶root的密碼的指令是(A.mysqiadmin—u root password test B.mysql-u root password test C.mysql—Ll root—ptest D.mysql-u root-password test 8.以下代碼執行結果是() A.報錯 C.循環換行打印全部記錄 B.只打印一條記錄 D.無任何結果 B.查看剛剮插入過的自動增長ID值 D.查看一共有多少條記錄 9.假設-f一個數據庫mydb中有一個表tb】,表中有六個字段,主鍵為ID,有十條記錄,ID從0到9,以下代碼輸山結果是() $link 2 mysql_c.onnec.t(”IocalhostrP, “mysql_user't, ”mysql_passwordr') or die(l'Could not connelc.t:”.m ysql_erroH)); tSresult 2 mysql_query{T'SELECT i.d,name,age FROM mydb.tbl where id<5"); or die(P'Could not query:.mysqI—error(》; echo mysql_num_fields(S;result.); mysql_close{'$tink); ?> A,6 B.5 C.4 D.3 10.使用以下哪條指令能夠實現數據庫的長久連接() A.mysql_connecE B.mysql_con nectd C.mysql_pconnetcd D.mysql_pconnect 1 1.建立一個“學生”表Student,它由學弓Sno、姓名Sname、性別Ssex、年齡Sage、所在系Sdept五個屬性組成。其中學號不能為空,值是唯一的,并且姓名取值也唯一,下列哪個選項正確() A.CREATE TABLE.Student(Sno CHAR(5)NOT NULL UNIQUE, Sname CHAR(20)UNIQUE,Ssex CHAR(1),Sage INT* Sdep CHAR(1 5)): B- CREATE TABLE Student(Sno CHAR(5)NOT NULL UNIQUE, Sname CHAR(20)UNIQUE,Ssex CHAR(I)Sage INT, Sdept CHAR(15)); C.CREATE TABLE Student(Sno CHAR(5), Snarm: CHAR(20)UNIQUE* Ssex CHAR(I), SageINT.Sdept CHAR(15)); D-CREATE TAHLE Student(Sno CHAR(5)NOT NULL UNIQUE, Sname CHAR(20)UNIQUE,Ssex CHAR(l), Sdcpt CHAR(1 5)): 12.查詢所有年齡在20歲以下的學生姓名及其年齡,以下正確的是() A, SELECT Sname,Sage FROM Student.WHERE Sage<=20; B.SELECT Sname,Sage FROM Student WHERE NOT Sage<20; C-SELECT Sname,Sage FROM Student WHERE NOT Sage>20; D.SELECT Sname,Sage FROM Studcnt WHERE Sage<20;13.查詢名字中第2個字為“陽”字的學生的姓名和學號,下列正確的是() A.SELECT Sname,Sno FROM Student WHERE Sname LIKE '_陽%'; B.SELECT Sname,Sno FROM Student WHERE Sname LIKE'陽%': C.SELECT Sname,Sno FROM StU dent WHERE Sn ame LIKE'一陽'; D.SELE CT Sn ame,Sno FROM Student WHERE Sname LIKE'陽_%';14.HAVING短語與WHERE子句的區別是() A.WHERE進擇滿足條件的組 B.HAVING選擇滿足條件的元組 C,作用對象不同 D.查詢條件不同 15.導山數據庫正確的方法為() A.mysqldump數據庫名>文件名; B,mys qldump數據庫名>>文件名; c.mysqliciump數據庫名 文件名; D.mysqldump數據庫名=文作名; 16. 卜面哪一項不是有效的SELECT語句() A.SELECT astname,firstname FROM customers; B-SELECT*FROM orders; C.Select FirstName NAME from CUSTOMERS; D,SELECT lastname Last Name FROM customers;1 7.以下ALTER語法不正確的是() A.ALTER TAHLE tl RENAME t2; B.ALTER TABLE t2 MODIFY a TINYINT NOT NULL; C.ALTER TABLE t2 MODIFY a TINYrNT NOT NULL, CHANGE b CHAR(20); D.ALTER TABLE t2 ADD c INT UNSIGNED NOT NULLAUTO_INCREMENT, ADD INDEX(c);1 8.下面哪一個不是有效的約束類型() A.PRIMARYKEYS B.UNIQUE C.CHECK D.FOREIGN KEY 19.MySQL.中表的默認類型為() A.ISAM B.InnoDB C.MyISAM D.HE.AP 二、練習題 1.實現用戶注冊功能。需要建一張用戶信息表,并編寫注冊和結果兩個頁面。用戶在注冊頁面填寫注冊信息,提交到結果頁面后顯示注冊的結果。 具體要求: (1)在MySQL數據庫的test數據庫中,創建一張用于存放用戶注冊信息的表,表中有描用戶名”、“密碼”兩個字段,并且設置“用戶名”字段為主鍵; (2.)用戶注冊頁面要顯示一個輸入框、一個密碼框和一個“注冊”提交按鈕: (3)用戶單擊“注冊”按鈕時,耍用JavaScript技術對用廣的輸入信息進行判斷,包括 用戶名或者密碼不能為空,密碼的長度必須大于6位,用戶名和密碼的長度必須小于10位。假如用戶輸入不符合上述規范,則彈出相應的錯誤提示信息終止提交;只有當用戶輸入滿足上規范時,才允許將表單提交到結果頁面; (4)如果用戶名在表中已經存在,則在結果頁面提示用戶重新輸入用戶名; (5)如果用戶名在表中不存在,則將用戶的注冊信息插入到數據庫中,并在結果頁面顯示“注冊成功”的提示信息; (6)用戶注冊成功后,在結果頁面顯示“現在已經有×X位注冊用戶了!”并將所有的注 冊用戶信息以列表方式顯示出來。 2.在M.ySQL數據庫,使用的用戶名為root,密碼為php。其中的一個數據庫名稱為lamp,其中的有兩個表名為type和border。下面為兩個表中的關系與數據: 表type 表Border 編寫一個腳本遍歷兩張表中的數據形成目錄結構,一級為type表中的數據,每個類別下為border表中的數據。 具體要求: (1)數掘庫文件(具體操作語句)。 (2)正確顯示一級type表中數據。 (3)正確顯示每個類下border表中數據母 1.寫一個函數,盡可能高效的,從一個標準 url 里取出文件的擴展名 例如: http:// 語言中,頁面頭部的 meta 標記可以用來輸出文件的編碼 格式,以下是一個標準的 meta 語句 請使用 PHP 語言寫一個函數,把一個標準 HTML 頁面中的類似 meta 標記中的 charset 部分值改為 big5 請注意:(1)需要處理完整的 html 頁面,即不光此 meta 語句(2)忽略大小寫 (3)? 和 ” 在此處是可以互換的 (4)?Content-Type? 兩側的引號是可以忽略的,但 ?text/html;charset=gbk? 兩側的不行(5)注意處理多余空格 3.寫一個函數,算出兩個文件的相對路徑 如 $a = ?/a/b/c/d/e.php?;$b = ?/a/b/12/34/c.php?; 計算出 $b 相對于 $a 的相對路徑應該是../../c/d將()添上 4.寫一個函數,能夠遍歷一個文件夾下的所有文件和子文件夾。5.簡述論壇中無限分類的實現原理。 6.設計一個網頁,使得打開它時彈出一個全屏的窗口,該窗口中有一個文本框和一個按鈕。用戶在文本框中輸入信息后點擊按鈕就可以把窗口關閉,而輸入的信息卻在主網頁中顯示。簡述題(50分) 1、用PHP打印出前一天的時間格式是2006-5-10 22:21:21(2分) 2、echo(),print(),print_r()的區別(3分) 3、能夠使HTML和PHP分離開使用的模板(1分) 5、使用哪些工具進行版本控制?(1分) 6、如何實現字符串翻轉?(3分) 7、優化MYSQL數據庫的方法。(4分,多寫多得) 8、PHP的意思(送1分) 9、MYSQL取得當前時間的函數是?,格式化日期的函數是(2分) 10、實現中文字串截取無亂碼的方法。(3分) 11、您是否用過版本控制軟件? 如果有您用的版本控制軟件的名字是?(1分) 12、您是否用過模板引擎? 如果有您用的模板引擎的名字是?(1分)phperz.com 13、請簡單闡述您最得意的開發之作(4分) 14、對于大流量的網站,您采用什么樣的方法來解決訪問量問題?(4分) 15、用PHP寫出顯示客戶端IP與服務器IP的代碼1分) 16、語句include和require的區別是什么?為避免多次包含同一文件,可用(?)語句代替它們?(2分) 17、如何修改SESSION的生存時間(1分).18、有一個網頁地址, 比如PHP開發資源網主頁: http://,如何得到它的內容?($1分) 19、在HTTP 1.0中,狀態碼401的含義是(?);如果返回“找不到文件”的提示,則可用 header 函數,其語句為(?);(2分) 12、在PHP中,heredoc是一種特殊的字符串,它的結束標志必須?(1分) 13、談談asp,php,jsp的優缺點(1分) 14、談談對mvc的認識(1分) 15、寫出發貼數最多的十個人名字的SQL,利用下表:members(id,username,posts,pass,email)(2分)16.請說明php中傳值與傳引用的區別。什么時候傳值什么時候傳引用?(2分)php程序員站 17.在PHP中error_reporting這個函數有什么作用?(1分)18.請寫一個函數驗證電子郵件的格式是否正確(2分)19.簡述如何得到當前執行腳本路徑,包括所得到參數。(2分)20.如何修改SESSION的生存時間.(1分) 21、JS表單彈出對話框函數是?獲得輸入焦點函數是?(2分) 22、JS的轉向函數是?怎么引入一個外部JS文件?(2分) 23、foo()和@foo()之間有什么區別?(1分) 24、如何聲明一個名為”myclass”的沒有方法和屬性的類?(1分) 25、如何實例化一個名為”myclass”的對象?(1分) 26、你如何訪問和設置一個類的屬性?(2分) 27、mysql_fetch_row()和mysql_fetch_array之間有什么區別?(1分) 28、GD庫是做什么用的?(1分) 29、指出一些在PHP輸入一段HTML代碼的辦法。(1分)30、下面哪個函數可以打開一個文件,以對文件進行讀和寫操作?(1分)(a)fget()(b)file_open() (c)fopen() (d)open_file()www.tmdps.cn 31、下面哪個選項沒有將 john 添加到users 數組中?(1分)(a)$users[] = ?john?; (b)array_add($users,?john?);(c)array_push($users,?john?);(d)$users ||= ?john?; 32、下面的程序會輸入是否?(1分) 33、使用php寫一段簡單查詢,查出所有姓名為“張三”的內容并打印出來(2分)表名User Name Tel Content Date 張三 *** 大專畢業 2006-10-11 張三 *** 本科畢業 2006-10-15 張四 021-55665566 中專畢業 2006-10-15 請根據上面的題目完成代碼: $mysql_db=mysql_connect(“local”,”root”,”pass”);www.tmdps.cn @mysql_select_db(“DB”,$mysql_db); 34、如何使用下面的類,并解釋下面什么意思?(3)class test{ function Get_test($num){ $num=md5(md5($num).”En”);return $num; } } 35、寫出 SQL語句的格式 : 插入,更新,刪除(4分)表名User Name Tel Content Date 張三 *** 大專畢業 2006-10-11 張三 *** 本科畢業 2006-10-15 張四 021-55665566 中專畢業 2006-10-15(a)有一新記錄(小王 *** 高中畢業 2007-05-06)請用SQL語句新增至表中(b)請用sql語句把張三的時間更新成為當前系統時間(c)請寫出刪除名為張四的全部記錄 36、請寫出數據類型(int char varchar datetime text)的意思;請問varchar和char有什么區別(2分) 37、MySQ自增類型(通常為表ID字段)必需將其設為(?)字段(1分) 38、寫出以下程序的輸出結果(1分) $b=201;$c=40;$a=$b>$c?4:5;echo $a;?> 39、檢測一個變量是否有設置的函數是否?是否為空的函數是?(2分)40、取得查詢結果集總數的函數是?(1分) 41、$arr = array(?james?, ?tom?, ?symfony?);請打印出第一個元素的值(1分) 42、請將41題的數組的值用?,'號分隔并合并成字串輸出(1分) 43、$a = ?abcdef?;請取出$a的值并打印出第一個字母(1分) 44、PHP可以和sql server/oracle等數據庫連接嗎?(1分) 45、請寫出PHP5權限控制修飾符(3分) 46、請寫出php5的構造函數和析構函數(2分) 47、以下請用PHPMYADMIN完成 (一)創建新聞發布系統,表名為message有如下字段(3分)php程序員站 id 文章id title 文章標題 content 文章內容 category_id 文章分類id hits 點擊量 (二)同樣上述新聞發布系統:表comment記錄用戶回復內容,字段如下(4分)comment_id 回復id id 文章id,關聯message表中的id comment_content 回復內容 現通過查詢數據庫需要得到以下格式的文章標題列表,并按照回復數量排序,回復最高的排在最前面 文章id 文章標題 點擊量 回復數量 用一個SQL語句完成上述查詢,如果文章沒有回復則回復數量顯示為0 (三)上述內容管理系統,表category保存分類信息,字段如下(3分)category_id int(4)not null auto_increment;categroy_name varchar(40)not null; PHP程序員初級面試題 一、解釋一下語句作用,并標示出以下哪一句不會把 John 新增到 users 陣列? $users[] = 'john'; array_add($users,?john?); array_push($users,?john?); $users ||= 'john'; 二、sort()、assort()、和 ksort()有什么分別?它們分別在什么情況下使用? sort() asort() ksort() 三、以下的代碼會產生什么?為什么? $num =10;function multiply(){ $num =$num *10;} multiply();echo $num; 四、reference 跟一個正規的變量有什么分別?如何 pass by reference?在什么情況下我們需要這樣做? 五、哪些函式可以用來向正在執行的腳本中插入函式庫? 六、foo()與 @foo()有什么分別? 七、你如何替 PHP 的應用程式偵錯? 八、“===”是什么?試舉一個“==”是真但“===”是假的例子。 九、你會如何定義一個沒有成員函式或特性的類別 myclass? 十、include 和 include_once 有什么分別?require 又如何? 十一、以下哪一個函式可以把瀏覽器轉向到另一個頁面? redir() header() location() redirect() 十二、以下哪一個函式可以用來開啟檔案以便讀/寫? fget() file_open() fopen() open_file() 十三、mysql_fetch_row()和 mysql_fetch_array()有什么分別? 十四、下面的代碼用來做什么?請解釋。 $date='08/26/2003';print ereg_replace(“([0-9]+)/([0-9]+)/([0-9]+)”,“[url=file://2///1///3%22,$date]2/1/3”,$date[/url]); 十五、試寫出幾個輸出一段 HTML 代碼的方法。(一) 成功把 John 新增到陣列 users。函式 array_add()無定義。 成功把 John 新增到陣列 users。 語法錯誤。 (二)根據陣列中元素的值,以英文字母順序排序,索引鍵會由 0 到 n-1 重新編號。主要是當陣列索引鍵的值無關疼癢時用來把陣列排序。 與 sort()一樣把陣列的元素按英文字母順序來排列,不同的是所有索引鍵都獲得保留,特別適合替聯想陣列排序。 根據陣列中索引鍵的值,以英文字母順序排序,特別適合用于希望把索引鍵排序的聯想陣列。 (三)由于函式 multiply()沒有指定 $num 為全域變量(例如 global $num 或者 $_GLOBALS['num']),所以 $num 的值是 10。 (四)Reference 傳送的是變量的地址而非它的值,所以在函式中改變一個變量的值時,整個應用都見到這個變量的新值。一個正規變量傳送給函式的是它的值,當函式改變這個變量的值時,只有這個函式才見到新值,應用的其他部分仍然見到舊值。 $myVariable = “its' value”;Myfunction(&$myVariable);// 以 reference 傳送參數以 reference 傳送參數給函式,可以使函式改變了的變量,即使在函式結束后仍然保留新值。 (五)對這道題目不同的理解會有不同的答案,我的第一個想法是插入 PHP 函式庫不外乎 include()、include_once()、require()、require_once(),但細心再想,“函式庫”也應該包括 com 物件和.net 函式庫,所以我們的答案也要分別包括 com_load 和 dotnet_load,下次有人提起“函式庫”的時候,別忘記這兩個函式。 (六)foo()會執行這個函式,任何解譯錯誤、語法錯誤、執行錯誤都會在頁面上顯示出來。@foo()在執行這個函式時,會隱藏所有上述的錯誤訊息。 很多應用程式都使用 @mysql_connect()和 @mysql_query 來隱藏 mysql 的錯誤訊息,我認為這是很嚴重的失誤,因為錯誤不該被隱藏,你必須妥善處理它們,可能的話解決它們。 (七)我并不常這樣做,我曾經試過很多不同的偵錯工具,在 Linux 系統中設定這些工具一點也不容易。不過以下我會介紹一個近來頗受注目的偵錯工具。 PHPAPD,第一步是執行以下的指令安裝: pear install apd安裝后在你的腳本的開頭位置加入以下的語句開始進行偵錯: apd_set_pprof_trace();執行完畢,打開以下檔案來查閱執行日志: apd.dumpdir 你也可以使用 pprofp 來格式化日志。 (八)“===”是給既可以送回布爾值“假”,也可以送回一個不是布爾值但卻可以賦與“假”值的函式,strpos()和 strrpos()便是其中兩個例子。 問題的第二部份有點困難,想一個“==”是假,但是“===”是真的例子卻很容易,相反的例子卻很少。但我終于找到以下的例子: if(strpos(“abc”, “a”)== true){ // 這部分永不會被執行,因為 “a” 的位置是 0,換算成布爾值“假”}if(strpos(“abc”, “a”)=== true){ // 這部份會被執行,因為“===”保證函式 strpos()的送回值不會換算成布爾值.}(九) class myclass{}(十)$obj = new myclass();(十一) 使用語句:$this->propertyName,例如: class myclass{ private $propertyName;public function __construct(){ $this->propertyName = “value”;}}(十二) 三者都是用來在腳本中插入其他檔案,視乎 url_allow_fopen 是否核準,這個檔案可以從系統內部或外部取得。但他們之間也有微細的分別: include():這個函式容許你在腳本中把同一個檔案插入多次,若果檔案不存在,它會發出系統警告并繼續執行腳本。include_once():它跟 include()的功能相似,正如它的名字所示,在腳本的執行期間,有關檔案只會被插入一次。require():跟 include()差不多,它也是用來在腳本中插入其他檔案,但若果檔案不存在,它會發出系統警告,這個警告會引致致命錯誤令腳本中止執行 (十三)這不是一個 PHP 函式,會引致執行錯誤。 這個是正確答案,header()用來插入卷頭資料,可以用來使瀏覽器轉向到另一個頁面,例如: header(“Location: http:// 標簽,為何要自行編寫正規表達式?好了,便當作是面試的一道考題吧,我會這樣回答: $stringOfText = ” This is a test第二篇:PHP課后
第三篇:php試題
第四篇:PHP面試題
這正是為何我老是告訴別人選擇適當的編程語言,若果你只用一種語言的話你怎么能回答這道問題?這道問題很簡單,Perl 所有陣列變量都是以 @ 開頭,例如 @myArray,PHP 則沿用 $ 作為所有變量的開頭,例如 $myArray。至于 Perl 表示散列表則用 %,例如 %myHash,PHP 則沒有分別,仍是使用 $,例如
$myHash。
(十九)最主要的倆各選擇是 session 和 cookie。使用 session 的方法是在每一頁的開始加上 session_start(),然后利用 $_SESSION 散列表來儲存 session 變量。至于 cookie 你只需記著一個原則:在輸出任何文字之前調用 set_cookie()函式,此外只需使用 $_COOKIE 散列表便可以存取所有 cookie 變量。
還有一個不那么可靠的方法,就是利用訪客的 IP 地址,這個方法有特定的危險性。
(二十)這個可能是我最喜歡的函式庫,自從 PHP 4.3.0 版本后 GD 便內建在 PHP 系統中。這個函式庫讓你處理和顯示各式格式的圖檔,它的另一個常見用途是制作所圖檔。GD 以外的另一個選擇是 ImageMagick,但這個函式庫并不內建于 PHP 之中,必須由系統管理員安裝在伺服器上。
(二十一)嗯,你可以使用 PHP 中任何一種輸出語句,包括 echo、print、printf,大部分人都使用如下例的 echo: echo ”My string $variable";你也可以使用這種方法:
echo <<
我們不要為一個簡單的問題引發一場舌戰,正如我經常說的:“為工作選擇適合的語言,不要把工作遷就語言。”我個人認為 Perl 十分適合用作命令行工具,雖然它在網頁應用上也有不錯的表現,但是它的真正實力在命令行上才能充分發揮。同樣地,PHP 雖然可以在控制臺的環境中使用,但是個人認為它在網頁應用上有更好的表現,PHP 有大量專門為網頁應用而設計的函式,Perl 則似乎以命令行為設計之本。
個人來說兩種語言我都喜歡,在大學期間我經常使用 Perl、PHP 和 Java,可惜工作上我使用 C#,但在家里我花不少時間操練 PHP、Perl、Ruby(現正學習)和 Java,保持我的技能知識在最新狀態。很多人問我 C 和 C++ 怎么樣,它們是否仍有機會在我的應用中占一席位,我的答案基本上是“否”,我近來的工作主要集中在網頁開發,雖然 C 和 C++ 也可以用來寫網頁,但它們到底不是為這種工作而設計的,“為工作選擇適合的語言”,若果我需要編寫一個控制臺應用,用來展示 bubble sort、quick sort 和 merge sort 的效能比較,我一定會使用 C / C++。若果我需要編寫一個相片簿系統,我會使用 PHP 或者 C#(我認為制作用戶介面方面.NET 語言比網頁更加)。
第五篇:php試題
1.mysql_connect()與@mysql_connect()的區別是(B)
A
@mysql_connect()不會忽略錯誤,將錯誤顯示到客戶端 B mysql_connect()不會忽略錯誤,將錯誤顯示到客戶端 C 沒有區別
D 功能不同的兩個函數
2.語句for($k=0;$k=1;$k++);和語句for($k=0;$k==1;$k++);執行的次數分別是: A
A
無限和0
B 0和無限
C 都是無限
D 都是0
3.讀取post方法傳遞的表單元素值的方法是: B
A
$_post[“名稱”]
B $_POST[“名稱”]
C $post[“名稱”]
D $POST[“名稱”]
4.php運算符中,優先級從高到低分別是()B
A
關系運算符,邏輯運算符,算術運算符
B 算術運算符,關系運算符,邏輯運算符
C 邏輯運算符,算術運算符,關系運算符
D 關系運算符,算術運算符,邏輯運算符
5.cookie的值存儲在()C
A
硬盤中
B 程序中
C 客戶端
D 服務器端
6.要查看一個變量的數據類型,可使用函數()B
A
type()
B gettype()
C GetType()
D Type()
7.字符串的比較,是按()進行比較。B
A
拼音順序
B ASCII碼值
C 隨機
D 先后順序
8.復選框的type屬性值是()A
A
checkbox
B radio
C select
D check
9.SESSION會話的值存儲在()D
A
硬盤上
B 網頁中
C 客戶端
D 服務器端
10.如果想取得最近一條查詢的信息,應該使用哪個函數()A
A
mysql_info
B mysql_stat
C mysql_insert_id()
D mysql_free_result
11.要查看一個結構類型變量的值,可以使用函數()
D
A
Print()
B print()
C Print_r()
D print_r()
12.在PHP中哪個變量數組總是包含所有總客戶端發出的cookies數據(A
$_COOKIE
B $_COOKIES
C $_GETCOOKIE
D $_GETCOOKIES
13.下列哪個說法是錯誤的()D
A
gettype()是查看數據類型的B 沒有被賦值的變量是0
C unset()是被認為NULL
D 雙引號字符串最重要的一點是其中的變量名會被變量值替代
14.HTML中,超鏈接用的是什么標簽 A
A
〈a>
B 〈table>
C 〈b>
D 〈head>
15.strtolower()函數的功能是()
A
upper 轉為大寫
A
將給定的字符串全部轉換為小寫字母
B 將給定的字符串全部轉換為大寫字母
C 將給定的字符串首字母轉換為小寫字母
D 將給定的字符串首字母轉換為大寫字母)A
16.HTML中,表格單元格的“值”是存儲在()標簽里
B
A
〈body>
B 〈td>
C 〈tr>
D 〈table>
REFDVCD |
A
intval()
B strval()
C str
D valint()
18.php中字符串的連接運算符是()
D
A
B +
C &
D.19.php函數不支持的功能有:
C
A
可變的參數個數
B 通過引用傳遞參數
C 通過指針傳遞參數
D 實現遞歸函數
20.文件框的type屬性值是()C
A
text
B hidden
C textarea
D checkbox
21.運算符“^”的作用是()D
A
無效
B 乘方
C 位非
D 位異或
22.自定義函數中,返回函數值的關鍵字是()
A
returns
B close
A
C return
D back
23.24.要檢查一個常量是否定義,可以使用函數()
A
A
defined()
B isdefin()
C isdefined()
D 無
25.關于mysql_select_db的作用描述正確的是()
A
連接數據庫
B 連接并選取數據庫
C 連接并打開數據庫
D 選取數據庫
26.HTML中,title標簽放在什么位置
B
A
body標簽里
B head標簽里
C script標簽里
D table標簽里
27.使用()函數可以求得數組的大小
A
A
count()
B conut()
C $_COUNT[“名稱”]
D $_CONUT[“名稱”]
28.從隊列數組隊頭刪除數據可以使用()函數。
A
array_push()
B array_pop()
C array_shift()
D array_unshift()
29.在html中嵌入javaScript,應該使用的標記是()
A
〈script language=“javascript”>
B 〈head> 〈/head>
C 〈body> 〈/body>
D 〈!--....//..>
30.以下代碼運行結果()C $A=array(“Monday”,“Tuesday”,3=>“Wednesday”);
D C A
echo $A[2];
A
Monday B Tuesday C Wednesday D 沒有顯示
31.新建一個數組的函數是()
A
A
array
B next
C count
D reset
32.下列不正確的變量名是()
B
A
$_test
B $2abc
C $Var
D $printr
33.讀取get方法傳遞的表單元素值的方法是: A
A
$_GET[“名稱”]
B $get[“名稱”]
C $GEG[“名稱”]
D $_get[“名稱”]
34.函數var_dump的意義是()C
A
定義數組
B 遍歷數組
C 輸出變量的相關信息
D 遞歸數組
35.strtoupper()函數的功能是: A
A
將給定字符串全部轉換為大寫字母。
B 將給定字符串全部轉換為小寫字母。
C 將給定字符串首字母轉換為大寫字母。
D 將給定字符串首字母轉換為小寫字母。
36.以下代碼的運行結果是()A
if($i=“")
{echo ”a“;}
else
{echo ”b“;
} ?>
A
輸出a
B 輸出b
C 條件不足,無法確定
D 運行出錯
37.在str_replace(1,2,3)函數中1 2 3 所代表的名稱是()
B
A
”取代字符串","被取代字符串","來源字符串"
B "被取代字符串",“取代字符串","來源字符串"
C "來源字符串",”取代字符串","被取代字符串"
D "來源字符串","被取代字符串",“取代字符串"
38.瀏覽網頁時,看到的內容是HTML的哪一部分? C
A
title
B table
C body
D head
39.運算符”%“的作用是()C
A
無效
B 取整
C 取余
D 除
40.file()函數返回的數據類型是()
A
A
數組
B 字符串
C 整型
D 根據文件來定
41.計算字符串長度的函數是()A
A
strlen()
B len()
C stringlen()
D lens()
42.array_push()的作用是()C
A
將數組的第一個元素彈出
B 將數組的最后一個元素彈出
C 將一個或多個元素壓入數組的末尾
D 將一個或多個元素插入數組的開頭
43.isset()的功能是()
A
A
測試變量是否存在B 測試變量是否為空
C 測試常量是否為空
D 測試常量是否存在
44.定義靜態變量的關鍵字是()
A
A
static
B statics
C STATIC
D STATICS
45.以下屬于忽略鍵名數組排序的是()
D
A
natsort
B ksort
C asort
D sort
46.empty()的功能是:
A
A
測試變量是否為空
B 測試變量是否存在C 測試常量是否為空
D 測試常量是否存在
47.瀏覽網頁時,看到的內容是HTML的哪一部分?
C
A
title
B table
C body
D head
48.自定義用戶常量,可以使用()函數.B
A
Define()
B define()
C Defin()
D defin()
49.執行下列代碼后的結果是()$x=15;echo $x++;$y=20;echo ++$y;
A
15,20
B 15,21
C 16,20
D 16,21
50.申明全局變量的關鍵字是()B
A
globals
B global
C GLOBAL
D 無
多項選擇題:(共12題,每題5分)
B.cd C.opendir D.rmdir 1.在返回數組中的所有值,可以使用array_value()函數 T
B 2.運算符“++”可以對常量和變量進行累加1 F 3.php語言中的數值型字符串可以和數字變量進行混合運算.T 4.php中,雙引號字符串支持變量解析以及轉義字符.T 5.php語言中的數值型字符串不可以和數字變量進行混合運算.F 6.PHP程序的擴展名必須是.php F 7.php中,字符串是用引號引起來的字符,單引號和雙引號沒有區別,都是一樣的,隨便用哪一個都是一樣的.F 8.if條件控制語句中,if后面的{ }可有可無,意義一樣。F 9.一個MySQL服務器,可以擁有多個數據庫,每個數據庫可擁有多個表.T 10.MS-server200與mysql一樣,同屬微軟公司的產品,用于軟件開發的數據庫支持 F 11.運算符“--”可以對常量和變量進行自身減1 F 12.php中,單引號字符串不支持變量解析以及轉義字符.T 13.if條件控制語句中,if后面的{ }不能省略。F 14.< f orm id=”form1“ name=”form1“ method=”“ action=”“ >,默認的method使用get進行值傳遞。F 15.〈 form id=”form1“ name=”form1“ method=”“ action=”">,默認的method使用post進行值傳遞。F 16.常量的作用域是全局的,不存在全局與局部的概念.T 17.if條件控制語句中,if后面必須加括號 T 18.使用get和post傳遞表單值沒有什么區別,可以隨便選擇一種使用.F 19.php中,在任何時候,雙引號和單引號都是不一樣的.F 20.運算符“++”只能對常量進行自身加1 F 21.if條件控制語句中,if后面的{ }可有可無。F 22.PHP跟ASP一樣,只能應用IIS架設服務器 F 23.MySQL可以建立個用戶,但每個用戶的權限一樣,僅是名稱不一樣而已.F 24.php中,()與{ }具有不一樣的功能。T 25.php中可以使用method=post的方式進行文件上傳 F 26.php中,==與===是同一個運算符。F 27.MySQL數據庫可以建立多個用戶,且各個用戶的權限可以分別設置.T 30.array_search()與in_array()函數均可用來查詢數組中元素的值。F 31.PHP是微軟公司開發的,應用于設計網頁的語言 F 32.php中,雙引號和單引號在某些時候具有不同的意義,在某些時候具有相同的意義.T 33.array_unshift()函數在數組的末尾插入一個或多個元素,返回成功插入后的總元素個數。F 34.current()和pos()均可返回數組中的當前單元。F 35.在返回數組中的所有值,可以使用array_keys()函數 F 36.php中,函數默認按值傳遞參數。T 37.php中,雙引號字符串不支持變量解析以及轉義字符.F 38.session與cookie只是名稱不同,實質上沒有什么區別,均可用于實現用戶登錄等功能.F 39.運算符“++”只能對變量的值自身累加1 F 40.安裝Windows XP后,系統默認狀態沒有安裝PHP環境;而安裝Windows 2003后,系統自動安裝了PHP環境,不用我們再安裝.F