第一篇:PHP作業范例
PHP作業范例
會員管理-注冊會員截圖。完成了一個注冊用戶的申請過程。
1、【點擊注冊為會員】
2、【購書卡信息】
3、【會員信息】
4、提交后
用到的數據庫SQL語句。先建立一個數據庫: `member` 然后把下面的語句粘貼到下面所示界面。
--phpMyAdmin SQL Dump--version 2.11.9.2--http://www.tmdps.cn', 'xswedc', '514015', '021-12345678', '0000-00-00 00:00:00');
第二篇: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表中數據母
第三篇:php試題
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面試題
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
“;$expression = ”/<(.*?)>(.*?)(.*?)>/“;echo preg_replace($expression, ”[url=file://2/]2[/url]“, $stringOfText);// 有人說也可以使用 /(<[^>]*>)/ $expression = ”/(<[^>]*>)/“;echo preg_replace($expression, ”“, $stringOfText);(十八)這正是為何我老是告訴別人選擇適當的編程語言,若果你只用一種語言的話你怎么能回答這道問題?這道問題很簡單,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