1、php面试题和答案资料仅供参考1、用PHP打印出前一天的时间格式是 -5-10 22:21:21(2分)$a = date(Y-m-d H:i:s, strtotime(-1 day);print_r($a); 2、echo(),print(),print_r()的区别(3分)echo 和print不是一个函数,是一个语言结构int print(string $arg), 只有一个参数echo arg1,arg2; 能够输出多个参数,返回voidecho和print只能打印出string,不能打印出结构print_r能打印出结构比如 $arr = array(key=value);print_
2、r($arr); 3、能够使HTML和PHP分离开使用的模板(1分)smarty,phplib 4、使用哪些工具进行版本控制?(1分)svn,git,cvs 5、如何实现字符串翻转?(3分)英文:strrev($a)中文或其它文字:中文:GB2312, 代码是使用GB2312编码?phpfunction reverse($str)$ret = ;len=mbstrwidth(str,GB2312);for(i=0;i len;i+)arr=mbsubstr(str, $i, 1, GB2312);return implode(, array_reverse($arr);print_r(reve
3、rse(你好); -6、优化MYSQL数据库的方法。(4分,多写多得)语句方面:1 使用索引,增加查询效率2 优化查询语句,提高索引命中率数据库涉及方面:1 构造分库分表,提高数据库的存储和扩展能力2 根据需要使用不同的存储引擎 7、PHP的意思(送1分)超级文本预处理语言Hypertext PreProcessor 8、MYSQL取得当前时间的函数是?,格式化日期的函数是(2分)CURRENT_TIMESTAMP()DATE_FORMAT()select DATE_FORMAT( -11-21 10:10:10, %Y-%m-%d); 9、实现中文字串截取无乱码的方法。(3分)mb_subs
4、tr($str, 1, 1, GB2312); -10、您是否用过版本控制软件? 如果有您用的版本控制软件的名字是?(1分)svngit 11、您是否用过模板引擎? 如果有您用的模板引擎的名字是?(1分)smarty 12、请简单阐述您最得意的开发之作(4分)XXX 13、对于大流量的网站,您采用什么样的方法来解决访问量问题?(4分)1 有效使用缓存,增加缓存命中率2 使用负载均衡3 对静态文件使用CDN进行存储和加速4 想法减少数据库的使用5 查看出现统计的瓶颈在哪里 -14、用PHP写出显示客户端IP与服务器IP的代码1分)$_SERVERREMOTE_ADDR$_SERVERSERVER
5、_ADDR 15、语句include和require的区别是什么?为避免多次包含同一文件,可用(?)语句代替它们? (2分)在失败的时候:include产生一个warning,而require产生直接产生错误中断require在运行前载入include在运行时载入require_onceinclude_once 16、如何修改SESSION的生存时间(1分).session_set_cookie_params 17、有一个网页地址, 比如PHP研究室主页: ,如何得到它的内容?($1分)file_get_contentscurl 18、在HTTP 1.0中,状态码401的含义是(?);如果返回
6、“找不到文件”的提示,则可用 header 函数,其语句为(?);(2分)未授权header(HTTP/1.0 404 Not Found);fast CGI中:header(Status: 404 Not Found); 19、在PHP中,heredoc是一种特殊的字符串,它的结束标志必须?(1分)成对出现$a = EODgood testEOD; 20、谈谈asp,php,jsp的优缺点(1分)asp是需要依赖IIS,是微软开发的语言php和jsp能够依赖apache或者 nginx等其它服务器 21、谈谈对mvc的认识(1分)model : 数据结构层view :展现control :
7、接收和判断处理输入 -22、写出发贴数最多的十个人名字的SQL,利用下表:members(id,username,posts,pass,email)(2分)select top 10 id,username from members order by posts desc 23. 请说明php中传值与传引用的区别。什么时候传值什么时候传引用?(2分)&表示传引用函数中参数传引用会将参数进行改变一般在输出参数有多个的时候能够考虑使用引用 24. 在PHP中error_reporting这个函数有什么作用? (1分)设定error的展示级别 25. 请写一个函数验证电子邮件的格式是否正确 (2分)
8、$str = ;regex=(az09.+)(daz.+).(az.2,6) ; /正则return preg_match(regex,str) 26. 简述如何得到当前执行脚本路径,包括所得到参数。(2分)$argc -获取参数数量$argv -获取参数列表 27.如何修改SESSION的生存时间. (1分)session_set_cookie_params -28、JS表单弹出对话框函数是?获得输入焦点函数是? (2分)alert()confirm()promopt()focus() 29、JS的转向函数是?怎么引入一个外部JS文件?(2分)window.location.href=# 3
9、0、foo()和foo()之间有什么区别?(1分)代表所有warning忽略 31、如何声明一个名为”myclass”的没有方法和属性的类? (1分)class myclass 32、如何实例化一个名为”myclass”的对象?(1分)$myclass = new myclass(); 33、你如何访问和设置一个类的属性? (2分)name;print_r($n); 34、mysql_fetch_row() 和mysql_fetch_array之间有什么区别? (1分)mysql_fetch_array() 是 mysql_fetch_row() 的扩展版本。除了将数据以数字索引方式储存在数组
10、中之外,还能够将数据作为关联索引储存,用字段名作为键名。 ?php mysql_connect(localhost, mysql_user, mysql_password) or die(Could not connect: . mysql_error(); mysql_select_db(mydb); $result = mysql_query(SELECT id, name FROM mytable); while (row=mysqlfetcharray(result, MYSQL_ASSOC) printf (ID: %s Name: %s, rowid,rowname); mysql
11、_free_result($result); -35、GD库是做什么用的? (1分)动态的开放的图片处理库 36、指出一些在PHP输入一段HTML代码的办法。(1分)echo htmlecho 40、使用php写一段简单查询,查出所有姓名为“张三”的内容并打印出来 (2分)表名UserNameTelContentDate张三 大专毕业 -10-11张三 本科毕业 -10-15张四 中专毕业 -10-15请根据上面的题目完成代码:$mysql_db=mysql_connect(local,root,pass);mysql_select_db(DB,$mysql_db);$sql = sprint
12、f(select * from %s where UserName = %s, 表名, 张三);values=mysqlquery(sql);while(item=mysqlfetchqueryarray(values)echo sprintf(用户名:%s, 电话 %s, 学历: %s, 毕业日期: %s, itemUserName,itemTel, itemContent,itemDate); 41、如何使用下面的类,并解释下面什么意思?(3)class testfunction Get_test($num)num=md5(md5(num).En);return $num;$test =
13、new test();ret=test-Get_test(11);print_r($ret);exit;将num进行MD5编码之后生成的32位字符串a1和En联系起来之后再进行一次MD5编码 -42、写出 SQL语句的格式 : 插入 ,更新 ,删除 (4分)表名UserNameTelContentDate张三 大专毕业 -10-11张三 本科毕业 -10-15张四 中专毕业 -10-15(a) 有一新记录(小王 高中毕业 -05-06)请用SQL语句新增至表中insert into 表名 values(小王, , 高中毕业, -05-06)(b) 请用sql语句把张三的时间更新成为当前系统时间
14、update 表名 set Date = GETDATE() where UserName = 张三(c) 请写出删除名为张四的全部记录delete from 表明 where UserName = 张四 43、请写出数据类型(int char varchar datetime text)的意思; 请问varchar和char有什么区别(2分)int 整型char 存储定长varchar 存储变长datetime 时间text 存储变长的varchar是变长char(20) 定长 44、MySQ自增类型(一般为表ID字段)必须将其设为(?)字段(1分)auto_increment45、写出以下
15、程序的输出结果 (1分)$b=201;$c=40;a=b$c?4:5;echo $a;?4 46、检测一个变量是否有设置的函数是否?是否为空的函数是?(2分)isset()empty() -47、取得查询结果集总数的函数是?(1分)mysql_num_rows() 48、$arr = array(james, tom, symfony); 请打印出第一个元素的值 (1分)print_r($arr0);reset($arr);print_r(current($arr);print_r(array_shift($arr); 49、请将41题的数组的值用,号分隔并合并成字串输出(1分)implode
16、 50、a=abcdef;请取出a的值并打印出第一个字母(1分)$a0;substr($a, 0, 1); 51、PHP能够和sql server/oracle等数据库连接吗?(1分)能够有现成的库 52、请写出PHP5权限控制修饰符(3分)publicprivate protected 53、请写出php5的构造函数和析构函数(2分)public function _construct()public function _destruct() 编程题1. 写一个函数,尽可能高效的,从一个标准 url 里取出文件的扩展名例如: ?php$url = ;arr=parseurl(url);pat
17、hArr=pathinfo(arrpath);print_r($pathArrextension); 3. 写一个函数,算出两个文件的相对路径如 $a = /a/b/c/d/e.php;$b = /a/b/12/34/c.php;计算出 b相对于a 的相对路径应该是 ?php$a = /a/b/c/d/e.php;$b = /a/b/12/34/c.php;/获取path相对于conpath的相对路径function sGetRelativePath(path,conpath)pathArr=explode(/,path);conpathArr=explode(/,conpath);$dism
18、atchlen = 0;for(i=0;i count(pathArr);i+)if(conpathArri != pathArri)dismatchlen=count(pathArr) - $i;arrLeft=arrayslice(pathArr, $i);break;ret=strrepeat(./,dismatchlen).implode(/, $arrLeft);return $ret;print_r(sGetRelativePath(b,a); 3.写一个函数,能够遍历一个文件夹下的所有文件和子文件夹。 ?phpfunction aGetAllFile($folder)$aFile
19、Arr = array();if(is_dir($folder)handle=opendir(folder);while(file=readdir(handle) != false)/如果是.或者.则跳过if(file=.|file = .)continue;if(is_file(folder./.file)aFileArr=file; else if(is_dir(folder./.file)aFileArrfile = aGetAllFile(folder./.file);closedir($handle);return $aFileArr;$path = /home/test/sql;print_r(aGetAllFile($path);