入门级PHP程序员面试题(总100分/47题), 看你能回答多少?
PHP新手面试题总100分
简述题(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分)
13、请简单阐述您最得意的开发之作(4分)
14、对于大流量的网站,您采用什么样的方法来解决访问量问题?(4分)
-----------------------------------------------------------------
15、用PHP写出显示客户端IP与服务器IP的代码1分)
16、语句include和require的区别是什么?为避免多次包含同一文件,可用(?)语句代替它们? (2分)
17、如何修改SESSION的生存时间(1分).
18、有一个网页地址, 比如PHP开发资源网主页: https://www.wendangku.net/doc/cd8709508.html,/index.html,如何得到它的内容?($1分)
19、在HTTP 1.0中,状态码401的含义是(?);如果返回“找不到文件”的提示,则可用he ader 函数,其语句为(?);(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分)
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()
31、下面哪个选项没有将john 添加到users 数组中?(1分)
(a) $users[] = …john?;
(b) array_add($users,?john?);
(c) array_push($users,…john?);
(d) $users ||= …john?;
32、下面的程序会输入是否?(1分)
$num = 10;
function multiply(){
$num = $num * 10;
}
multiply();
echo $num;
?>
33、使用php写一段简单查询,查出所有姓名为“张三”的内容并打印出来(2分) 表名User
Name Tel Content Date
张三133******** 大专毕业2006-10-11
张三136******** 本科毕业2006-10-15
张四021-******** 中专毕业2006-10-15
请根据上面的题目完成代码:
$mysql_db=mysql_connect("local","root","pass");
@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
张三133******** 大专毕业2006-10-11
张三136******** 本科毕业2006-10-15
张四021-******** 中专毕业2006-10-15
(a) 有一新记录(小王132******** 高中毕业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分)
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;
用户输入文章时,通过选择下拉菜单选定文章分类
写出如何实现这个下拉菜单
1、用PHP打印出前一天的时间格式是2006-5-10 22:21:21
$yesterday = time() - (24 * 60 * 60);
echo 'today:'.date('Y-m-d H:i:s')."\n";
echo 'yesterday:'. date('Y-m-d H:i:s', $yesterday)."\n";
?>
2、echo(),print(),print_r()的区别
echo是PHP语句, print和print_r是函数,语句没有返回值,函数可以有返回值(即便没有用) print()只能打印出简单类型变量的值(如int,string)
print_r()可以打印出复杂类型变量的值(如数组,对象)
echo 输出一个或者多个字符串
2.echo是语言结构,无返回值;print功能和echo基本相同,不同的是print是函数,有返回值;print_r是递归打印,用于输出数组对象
3.其实PHP本身就是一种模版引擎,我用过的是smarty,常见的还有PHPLib,FastTemplate,Savant这里有个模板引擎列表:https://www.wendangku.net/doc/cd8709508.html,/forums/showthread.php?t=123769
5.CVS和SVN,SVN号称下一代CVS,功能强大,不过CVS是老牌,市占率很高.我一直用SVN,题目是问用什么工具,呃,这个可能需要这么回答:CVS Server on Apache作服务端,WinCVS 作客户端;Subversion on Apache/DAV 做服务端,TortoiseSVN做客户端,或者Subclipse做客户端.
6.用strrev函数呗,不准用PHP内置的就自己写:
function strrev($str)
{
$len=strlen($str);
for($i=$len;$i>=0;$i--)
{
$newstr .= $str{$i};
}
return $newstr;
}
10.mb_sumbstr();
18.file_get_contents($url
1:date(y-m-d),是输出那个指定的时间还是输出一天前的现在时间?后者再减去好像是60*60*24(就是减一天的时间了)
2.无返回值(其实echo还可以输出多个字符变量),有返回值,按照健值对应输出数组
3.只用过smarty
4.没有这题?
5.cvs
6.strrev()(名字记不大的,就是英语string reverse)
7.优化数据库这个问题好大啊,例如多多采用索引,procedure,优化你的sql..,对应不同需求采用不同引擎
8.大概是什么预处理超文本脚本语言,就记得pre什么,h是超文本了,p和asp的一个意思吧
9。好像是current(),date()
10.不好意思,没这方面经验
11.这个和第五题的区别?cvs,没用过,哈哈
12.smarty,知道的还有不少,但是都没用过,就用过smarty
13.目前没有,没有达到我的满意级别,要做到真正的m+v+c+分离真的是不容易,还有整体的cache方案,w3c标准,.....
14.我只知道的就是装个负载平衡服务器,然后多装几个服务器,如果你很nb的话,用grid computing吧
15.这个不查手册真的记不住名字,在$_sever['remote_addr']这个是用户客户的,服务器的也是$_server变量里的吧(可能记错了第一个)
16.区别在出现错误时有一个会继续执行,还有一个停止,好像是include会停止把,后面那个是..._once()
17.php.ini里面有
18.file(),参数是url
19.用户验证信息,404
20.这个序号乱了阿,heredoc就是<<<然后加你自己的开始结束符
21.asp平台限制某些组件要掏钱,jsp很强,组件也得掏钱,php免费,速度不错
22.逻辑操作显示分开,说其实可以说很多,但是好累,不想说了
23.说实话,你这个表我没看懂,帖的表呢?光给我一个member?
24.这个就是a=1;b=a;b=1;如果b=&a,那么修改b,a也变了,两者指向的统一地址
25.error_reporting没用过
26.^[0-9a-zA-z]+[/.0-9a-zA-Z]*@[0-9a-zA-z]+[/.0-9a-zA-Z][/.a-z]{2-4}$
27.$_server里面有八这个脚本执行路径
28.重复
29.alert,focus?
30.window.location=url,后面这个函数名字忘掉了
31.后面那个不返回错误给客户的
32.没有属性和方法,这个还真不知道
33.new 类名()
34.set,get构造器
35.顾名思义,值和键值数组
36.graphic图形库
37.什么意思?输入一段html,不太明白,用文件引入?
38.c
39.push不是返回最后一个吗,这个记得不清楚,d我没用过
40.0,函数参数未付值
41.$sql=SELECT 你要的字段from 表名where https://www.wendangku.net/doc/cd8709508.html,=…阿三?
42.加密加了半天,实例化,然后$object->get_....()
43.is_empty和is_null
44.直接在SQL里就用sum,不过php也有了,名字不记得了,我也可以while($row=fetch_array()),然后再count
45.echo 名字[0]
46.implode($str,“,”)
47.可以阿,说到这,php还有一大特点就是数据库支持多
48.不知道
49.__construst,__同名类__destruct
50.后面几题不做了,累啊,说下思路,选下同名的,做个count,然后按照降序排序,其实显示0这个很有特点,我这里select就算为空也有资源id的,所以fetch_array,然后is_array,没有的话那就是0
1 echo date("Y-m-d H:i:s");
2 echo() 是个语句,没有返回值。
print()和print_r()是函数,有返回值
print()可以显示出字符串等
print_r()可以显示数组
3 smarty
5
6 strrev
7 创建数据缓存
8 php是预处理文件程序
9 date(),format()
10
11 没用过
12 用过,smarty
13 是https://www.wendangku.net/doc/cd8709508.html,/的新版网站,用了smarty模板技术,将HTML和PHP语句分开
14
15 get_client_ip();
16 include的包含如果文件不存在,但没有用到就不会报错,require会报错。include_once()或
require_once()
17
18 信息采集
19
12 是的
13 asp不跨平台,不开源,简单易学 php 跨平台,开源,简单易上手 jsp 跨平台,比较难学
14
15 select username from members where max(posts);
16 传值:原值改变现值不改变,传引用:现值跟随原值变。固定变量时传值,变量不固定时传引用。
17 打开错误报告的级别
18
19
20
21 alert(); form.aa.focus();
22 window.location();
23
24
25 $aa = new myclass();
26
27 前者只取回数组的关联名字,后者取回数组的关联名字和数字下标名。
28 PHP图象处理
29 echo "
HTML语句
";30 c
31 d
32 10
33 $sql = "select * from user where name='张三'";
$result = mysql_query($sql);
while($row = mysql_fetch_array($result)){
echo $row["name"]." ".$row["tel"]." ".$row
["content"]." ".$row["date"];
}
34 $aa = new class;
$aa->get_test(10);
md5加密之后再md5加密
35 (a) insert into user set name = '小王',tel = '132********',content = '高中毕业',date =
'2006-10-15';
(b) update user set date = date() where name = '张三';
(c) drop from user where name = '张四';
36 整型字符型字符型日期时间型文本型
37 主关键整型
38 4
39 is_function();is_null();
40 mysql_num_rows();
41 $arr[1];
42 exprode implode
43 echo substr($a,0);
44 可以
1、用PHP打印出前一天的时间格式是2006-5-10 22:21:21
echo date('Y-m-d H:i:s', strtotime('-1 day'));
2、echo(),print(),print_r()的区别
echo是语言结构,无返回值;print功能和echo基本相同,不同的是print是函数,有返回值; print_r是递归打印,用于输出数组对象
3、能够使HTML和PHP分离开使用的模板
so much,其实PHP本身就是一种模版引擎,我用过的是smarty,常见的还有PHPLib,FastTemplate,Savant
4、如何实现PHP、JSP交互?
题目有点含糊不清,SOAP,XML_RPC,Socket function,CURL都可以实现这些,如果是考PHP和Java的整合,
PHP内置了这种机制(如果考PHP和.NET的整合,也可以这么回答), 例如$foo = new Java('https://www.wendangku.net/doc/cd8709508.html,ng.System');
5、使用哪些工具进行版本控制?
CVS和SVN,SVN号称下一代CVS,功能强大,不过CVS是老牌,市占率很高.我一直用SVN,题目是问用什么工具呃,这个可能需要这么回答:
CVS Server on Apache作服务端,WinCVS作客户端;Subversion on Apache/DAV 做服务端,TortoiseSVN做客户端,或者Subclipse做客户端.
6、如何实现字符串翻转?
用strrev函数呗,不准用PHP内置的就自己写:
function strrev($str)
$len=strlen($str);
$newstr = '';
for($i=$len;$i>=0;$i--)
{
$newstr .= $str{$i};
}
return $newstr;
}
7、优化MYSQL数据库的方法。
高考政治题,把你知道的知识点都写上吧.我的答案:
(1).数据库设计方面,这是DBA和Architect的责任,设计结构良好的数据库,必要的时候,去正规化(英文是这个:denormalize,中文翻译成啥我不知道),
允许部分数据冗余,避免JOIN操作,以提高查询效率
(2).系统架构设计方面,表散列,把海量数据散列到几个不同的表里面.快慢表,快表只留最新数据,慢表是历史存档.集群,
主服务器Read & write,从服务器read only,或者N台服务器,各机器互为Master
(3).(1)和(2)超越PHP Programmer的要求了,会更好,不会没关系.检查有没有少加索引
(4).写高效的SQL语句,看看有没有写低效的SQL语句,比如生成笛卡尔积的全连接啊,大量的Group By和order by,
没有limit等等.必要的时候,把数据库逻辑封装到DBMS端的存储过程里面.缓存查询结果,explain每一个sql语句
(5).所得皆必须,只从数据库取必需的数据,比如查询某篇文章的评论数,select count(*) ... where article_id =
就可以了,不要先select * ... where article_id = 然后msql_num_rows.只传送必须的SQL语句,比如修改文章的时候,如果用户只修改了标题,那就
update ... set title = where article_id = 不要set content = (大文本)
(6).必要的时候用不同的存储引擎.比如InnoDB可以减少死锁.HEAP可以提高一个数量级的查询速度.
8、谈谈事务处理
如同是个编程语言都会有答应Hello World的例子一样,是本数据库的教材都会讲A给B的账户转账50美元的例子,回答这个就好了.
不过据我所知,用MySQL的企业,很少用MySQL来实现事务处理.何况现在Oracle收购了InnoDB的公司.
9、apache+mysql+php实现最大负载的方法
参见第七题的答案,那个地方搞好了这个问题就迎刃而解了.
10、实现中文字串截取无乱码的方法。
哈哈哈,我猜出题的人是不是被substr的中文处理问题烦恼很久了,是不是还用了网上流传的用正则匹配中文字符然后截取的函数,
其实,有非常简单的解决方法:mb_substr()
简述题(50分)
1、用PHP打印出前一天的时间格式是2006-5-10 22:21:21(2分)
Echo date(“Y-m-d H:i:s”, (time()-86400));
2、echo(),print(),print_r()的区别(3分)
echo 无返回值打印
print 有返回值的打印
print_r 打印数组
3、能够使HTML和PHP分离开使用的模板(1分)
Smarty、phplib等
4、使用哪些工具进行版本控制?(1分)
我就使过SVN
5、如何实现字符串翻转?(3分)
strrev函数(临时查的手册)
---------------------------------------------------------------
6、优化MYSQL数据库的方法。(4分,多写多得)
编译时优化
安装后设置合理的运行参数值
数据表优化(设置合理数据表结构、以及表主键、索引、字段类型)
7、PHP的意思(送1分)
Personal Home Page “个人主页”的意思
(临时查的手册)
8、MYSQL取得当前时间的函数是?,格式化日期的函数是(2分)
Now()
DATE_FORMAT(“时间”, “格式”)
9、实现中文字串截取无乱码的方法。(3分)
我发现好多地方都考这道题,我都是找个函数拿来就用,我太懒。
不过可以糊弄一句(使用mb_substr方法)
---------------------------------------------------------------
10、您是否用过版本控制软件? 如果有您用的版本控制软件的名字是?(1分) SVN
11、您是否用过模板引擎? 如果有您用的模板引擎的名字是?(1分) Starty、PHPLib
12、请简单阐述您最得意的开发之作(4分)
…说了大家也不知道
13、对于大流量的网站,您采用什么样的方法来解决访问量问题?(4分)
硬件不说了,我能做到的环节里有:
网页静态化
配置WEB和数据库服务器分离
采用缓存机制
图片、css等可放在其他服务器…
经常使用的数据记录定时统计化
-----------------------------------------------------------------
14、用PHP写出显示客户端IP与服务器IP的代码1分)
$_SERVER['REMOTE_ADDR'];
$_S ERVER[“HTTP_HOST”];
15、语句include和require的区别是什么?为避免多次包含同一文件,可用(?)语句代替它们? (2分)
查的“php的require()性能与include()相类似。不同之处在于,对include()来说,在include()执行时文件每次都要进行读取和评估;而对于require()来说,文件只处理一次(实际上,文件内容替换了require()语句)。这就意味着如果有包含这些指令之一的代码和可能执行多次的代码,则使用require()效率比较高。另一方面,如果每次执行代码时相读取不同的文件,或者有通过一组文件叠代的循环,就使用include(),因为可以给想要包括的文件名设置一个变量,当参数为include()时使用这个变量”
16、如何修改SESSION的生存时间(1分).
session_cache_expire 是不是这个函数啊?
17、有一个网页地址, 比如PHP开发资源网主页: https://www.wendangku.net/doc/cd8709508.html,/index.html,如何得到它的内容?($1分)
File_get_content(“url”)