第一篇: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.xiexiebang.com)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.xiexiebang.com 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.xiexiebang.com @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