PHP面试题汇总参考

PHP面试题汇总

这是一份比较全面的PHP面试题.对准备去新公司应聘PHP职位的开发者应该有帮助。或者说,对招聘PHP开发人员的企业也有些帮助,不过就不要原样打印出来考了,稍微改一改。 简述题(50分)

1、 用PHP打印出前一天的时间格式是2006-5-10 22:21:21。(2分)

<?php

echo date ("Y-m-d H:i:s" ,strtotime(‘-1,days’));

?>

2、 echo(),print(),print_r()的区别。(3分)

(1)echo 是语法,Output one or more strings,没有返回值;

(2)print 是函数,不能输出数组和对象,Output a string,print有返回值;

(3)print_r 是函数,可以输出数组。print_r是个比较有意思的函数,可以输出stirng、int、float、 array、object等,输出array时会用结构表示,print_r输出成功时返回true;而且print_r可以通过print_r($str,true)来,使print_r不输出而返回print_r处理后的值。此外,对于echo和print,基本以使用echo居多,因为其效率比print要高。

3、 能够使HTML和PHP分离开使用的模板。(1分)

//view class

class View

{

public $var;

public function display($tplfile)

{

include_once $tplfile;

}

}

//controller

include_once 'view.php';

$view = new View();

$view->var = array('hello', 'world');

$view->display('view/out.php');

// view/out.php

<p>

<?php foreach($this->var as $v) : ?>

<?php echo $v; ?><br />

<?php endforeach; ?>

</p>

4、 使用哪些工具进行版本控制?(1分)

Svn  cvs

5、 如何实现字符串翻转?(3分)

Strrev($str);

function getStr($str){

$len=strlen($str);

for ($i=0;$i<$len/2;$i++){

$temp=$str[$i];

$str[$i]=$str[$len-$i-1];

$str[$len-$i-1]=$temp;

}

return $str;

}

6、 优化MYSQL数据库的方法。(4分,多写多得)

 

7、PHP的意思(送1分)

PHP 最开始是Personal Home Page的意思,而后来改为:“PHP: Hypertext Preprocessor”。

8、MYSQL取得当前时间的函数是?,格式化日期的函数是(2分)

Now  date_format()

9、实现中文字串截取无乱码的方法。(3分)

10、您是否用过版本控制软件? 如果有您用的版本控制软件的名字是?(1分)

11、您是否用过模板引擎? 如果有您用的模板引擎的名字是?(1分)

12、请简单阐述您最得意的开发之作(4分)

13、对于大流量的网站,您采用什么样的方法来解决访问量问题?(4分)

1、确认当前硬件是否支持当前的流量

2、数据库读写分离

3、优化数据表和程序功能规则

4、进制外链的盗链和大文件的下载

5、使用不同的主机分流

—————————————————————–

14、用PHP写出显示客户端IP与服务器IP的代码1分)

$_SERVER['REMOTE_ADDR']; $_SERVER['SERVER_ADDR'];

15、语句include和require的区别是什么?为避免多次包含同一文件,可用(?)语句代替它们? (2分)

16、如何修改SESSION的生存时间(1分).

通过修改php.Ini文件来修改

Session_set_cookie_params();

17、有一个网页地址, 比如PHP研究室主页: http://www.phpv.net/index.html,如何得到它的内容?($1分)

1、File_get_contents('http://www.phpv.Net/index.html');

2、$fp = Fopen('http://www.phpv.Net/index.html','rb');

While(!Feof($fp)){

$content = Fread('$fp',1024);

}

Echo $content;

Fclose($fp);

3、$fp = fopen('http://www.phpv.Net/index.html','rb');

4、$content = stream_get_contents($fp);

Echo $content;

Fclose($fp);

18、在HTTP 1.0中,状态码401的含义是(?);如果返回“找不到文件”的提示,则可用 header 函数,其语句为(?);(2分)

Header()

19、在PHP中,heredoc是一种特殊的字符串,它的结束标志必须?(1分)

20、谈谈asp,php,jsp的优缺点(1分)

21、谈谈对mvc的认识(1分)

——————————————————————-----------------------------------

22、写出发贴数最多的十个人名字的SQL,利用下表:

members(id,username,posts,pass,email)(2分)

23. 请说明php中传值与传引用的区别。什么时候传值什么时候传引用?(2分)

24. 在PHP中error_reporting这个函数有什么作用? (1分)

25. 请写一个函数验证电子邮件的格式是否正确 (2分)

26. 简述如何得到当前执行脚本路径,包括所得到参数。(2分)

27.如何修改SESSION的生存时间. (1分)

——————————————————————–

28、JS表单弹出对话框函数是?获得输入焦点函数是? (2分)

29、JS的转向函数是?怎么引入一个外部JS文件?(2分)

30、foo()和@foo()之间有什么区别?(1分)

31、如何声明一个名为”myclass”的没有方法和属性的类? (1分)

32、如何实例化一个名为”myclass”的对象?(1分)

33、你如何访问和设置一个类的属性? (2分)

34、mysql_fetch_row() 和mysql_fetch_array之间有什么区别? (1分) ——————————————————————–

35、GD库是做什么用的? (1分)

36、指出一些在PHP输入一段HTML代码的办法。(1分)

37、下面哪个函数可以打开一个文件,以对文件进行读和写操作?(1分)

(a) fget() (b) file_open() (c) fopen() (d) open_file()

38、下面哪个选项没有将 john 添加到users 数组中? (1分)

(a) $users[] = ‘john’;

(b) array_add($users,’john’);

(c) array_push($users,‘john’);

(d) $users ||= ‘john’;

39、下面的程序会输入是否?(1分)

$num = 10;

 

}

 

function multiply(){ $num = $num * 10; multiply(); echo $num;

40、使用php写一段简单查询,查出所有姓名为“张三”的内容并打印出来 (2分)

表名 UserName Tel Content Date 张三 13333663366 大专毕业 2006-10-11

—————————————————————————–

47、取得查询结果集总数的函数是?(1分)

48、$arr = array(’james’, ‘tom’, ’symfony’); 请打印出第一个元素的值 (1分)

49、请将41题的数组的值用’,'号分隔并合并成字串输出(1分)

50、$a = ‘abcdef’; 请取出$a的值并打印出第一个字母(1分)

51、PHP可以和sql server/oracle等数据库连接吗?(1分)

52、请写出PHP5权限控制修饰符(3分)

53、请写出php5的构造函数和析构函数(2分)

——————————————————————————

54、以下请用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中,当前脚本的名称(不包括路径和查询字符串)记录在预定义变量____中;而链接到当前页面的URL记录在预定义变量____中。

2.执行程序段将输出____。

3.在HTTP 1.0中,状态码 401 的含义是____;如果返回‚找不到文件‛的提示,则可用 header 函数,其语句为____。

4.数组函数 arsort 的作用是____;语句 error_reporting(2047)的作用是____。

5.PEAR中的数据库连接字符串格式是____。

6.写出一个正则表达式,过虑网页上的所有JS/VBS脚本(即把scrīpt标记及其内容都去掉):____。

7.以Apache模块的方式安装PHP,在文件http.conf中首先要用语句____动态装载PHP模块,然后再用语句____使得Apache把所有扩展名为php的文件都作为PHP脚本处理。

8.语句 include 和 require 都能把另外一个文件包含到当前文件中,它们的区别是____;为了避免多次包含同一文件,可以用语句____来代替它们。

9.类的属性可以序列化后保存到 session 中,从而以后可以恢复整个类,这要用到的函数是____。

10.一个函数的参数不能是对变量的引用,除非在php.ini中把____设为on.

11.SQL中LEFT JOIN的含义是____。如果 tbl_user记录了学生的姓名(name)和学号(ID),tbl_score记录了学生(有的学生考试以后被开除了,没有其记录)的学号(ID)和 考试成绩(score)以及考试科目(subject),要想打印出各个学生姓名及对应的的各科总成绩,则可以用SQL语句____。

12.在PHP中,heredoc是一种特殊的字符串,它的结束标志必须____。

编程题

1. 写一个函数,尽可能高效的,从一个标准 url 里取出文件的扩展名

例如: http://www.sina.com.cn/abc/de/fg.php?id=1 需要取出 php 或 .php

2. 在 HTML 语言中,页面头部的 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将()添上

3.写一个函数,能够遍历一个文件夹下的所有文件和子文件夹。

4.简述论坛中无限分类的实现原理。

 

1、用PHP打印出前一天的时间格式是2006-5-10 22:21:21(2分)

答:

2、echo(),print(),print_r()的区别(3分)

答:echo是语言结构,无返回值;//echo — Output one or more strings     print功能和echo基本相同,不同的是print是函数,有返回值;//print — Output a string

print_r是递归打印,用于输出数组对象

3、能够使HTML和PHP分离开使用的模板(1分)

答:这个就太多了,可能比较流行smarty吧,还有phplib、fast、小强(tinybutstrong)等等很多

1. PHP (yep PHP itself is a template engine)

2. Smarty

3. XSLT - technically XSLT is also a template engine

4. PEAR::HTML_Template_Flexy

5. PEAR::HTML_Template_IT

6. PEAR::HTML_Template_PHPLIB

7. PEAR::HTML_Template_Sigma

8. PEAR::HTML_Template_Xipe

9. patTemplate

10. PHPTAL (port of Zope templates)

11. PHP Savant - reclaiming PHP

12. SimpleT - also reclaiming PHP

13. YATS - Yet Another PHP Templating System

14. phpBB template engine

15. Fast Template

16. Tiny But Strong

17. YAPTER (yet another yet another?)

18. Simple Turtle Template

19. MiniTemplator

20. TagTemplate

4、使用哪些工具进行版本控制?(1分)

答:CVS Server on Apache作服务端,WinCVS作客户端;Subversion on Apache/DAV 做服务端,TortoiseSVN做客户端,或者Subclipse做客户端.

5、如何实现字符串翻转?(3分)

用strrev函数 或者

PHP代码

function strrev($str)

{

$len=strlen($str);

$newstr = ”;

for($i=$len;$i>=0;$i–)

{

$newstr .= $str{$i};

}

return $newstr;

}

—————————————————————

6、优化MYSQL数据库的方法。(4分,多写多得)

7、PHP的意思(送1分)

8、MYSQL取得当前时间的函数是?,格式化日期的函数是(2分)

9、实现中文字串截取无乱码的方法。(3分)

—————————————————————

10、您是否用过版本控制软件? 如果有您用的版本控制软件的名字是?(1分)

11、您是否用过模板引擎? 如果有您用的模板引擎的名字是?(1分)

12、请简单阐述您最得意的开发之作(4分)

13、对于大流量的网站,您采用什么样的方法来解决访问量问题?(4分)   —————————————————————–

14、用PHP写出显示客户端IP与服务器IP的代码1分)

15、语句include和require的区别是什么?为避免多次包含同一文件,可用(?)语句代替它们? (2分)

16、如何修改SESSION的生存时间(1分).

17、有一个网页地址, 比如PHP研究室主页:

http://www.phpv.net/index.html,如何得到它的内容?($1分)

18、在HTTP 1.0中,状态码401的含义是(?);如果返回“找不到文件”的提示,则可用 header 函数,其语句为(?);(2分)

19、在PHP中,heredoc是一种特殊的字符串,它的结束标志必须?(1分)

20、谈谈asp,php,jsp的优缺点(1分)

21、谈谈对mvc的认识(1分)

——————————————————————-

22、写出发贴数最多的十个人名字的SQL,利用下表:

members(id,username,posts,pass,email)(2分)

23. 请说明php中传值与传引用的区别。什么时候传值什么时候传引用?(2分)

24. 在PHP中error_reporting这个函数有什么作用? (1分)

25. 请写一个函数验证电子邮件的格式是否正确 (2分)

26. 简述如何得到当前执行脚本路径,包括所得到参数。(2分)

27.如何修改SESSION的生存时间. (1分)

——————————————————————–

28、JS表单弹出对话框函数是?获得输入焦点函数是? (2分)

 

41、如何使用下面的类,并解释下面什么意思?(3) class test{ function Get_test($num){ $num=md5(md5($num).”En”); return $num; } }

—————————————————————————-

42、写出 SQL语句的格式 : 插入 ,更新 ,删除 (4分)

表名 UserName Tel Content Date

张三 13333663366 大专毕业 2006-10-11

张三 13612312331 本科毕业 2006-10-15

张四 021-55665566 中专毕业 2006-10-15

(a) 有一新记录(小王 13254748547 高中毕业 2007-05-06)请用SQL语句新增至表中

(b) 请用sql语句把张三的时间更新成为当前系统时间

(c) 请写出删除名为张四的全部记录

43、请写出数据类型(int char varchar datetime text)的意思; 请问varchar和char有什么区别(2分)

44、MySQ自增类型(通常为表ID字段)必需将其设为(?)字段(1分)

 

45、写出以下程序的输出结果 (1分) $b=201; $c=40; $a=$b>$c?4:5; echo $a; ?>

46、检测一个变量是否有设置的函数是否?是否为空的函数是?(2分)   —————————————————————————–

47、取得查询结果集总数的函数是?(1分)

48、$arr = array(’james’, ‘tom’, ’symfony’); 请打印出第一个元素的值 (1分)

49、请将41题的数组的值用’,'号分隔并合并成字串输出(1分)

50、$a = ‘abcdef’; 请取出$a的值并打印出第一个字母(1分)

51、PHP可以和sql server/oracle等数据库连接吗?(1分)

52、请写出PHP5权限控制修饰符(3分)

53、请写出php5的构造函数和析构函数(2分)

——————————————————————————

54、以下请用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中,当前脚本的名称(不包括路径和查询字符串)记录在预定义变量____中;而链接到当前页面的URL记录在预定义变量____中。

2.执行程序段将输出____。

3.在HTTP 1.0中,状态码 401 的含义是____;如果返回“找不到文件”的提示,则可用 header 函数,其语句为____。

4.数组函数 arsort 的作用是____;语句 error_reporting(2047)的作用是____。

5.PEAR中的数据库连接字符串格式是____。

6.写出一个正则表达式,过虑网页上的所有JS/VBS脚本(即把scrīpt标记及其内容都去掉):____。

7.以Apache模块的方式安装PHP,在文件http.conf中首先要用语句____动态装载PHP模块,然后再用语句____使得Apache把所有扩展名为php的文件都作为PHP脚本处理。

8.语句 include 和 require 都能把另外一个文件包含到当前文件中,它们的区别是____;为了避免多次包含同一文件,可以用语句____来代替它们。

9.类的属性可以序列化后保存到 session 中,从而以后可以恢复整个类,这要用到的函数是____。

10.一个函数的参数不能是对变量的引用,除非在php.ini中把____设为on.

11.SQL中LEFT JOIN的含义是____。如果 tbl_user记录了学生的姓名(name)和学号(ID),tbl_score记录了学生(有的学生考试以后被开除了,没有其记录)的学号(ID)和 考试成绩(score)以及考试科目(subject),要想打印出各个学生姓名及对应的的各科总成绩,则可以用SQL语句____。

12.在PHP中,heredoc是一种特殊的字符串,它的结束标志必须____。   编程题

 

1. 写一个函数,尽可能高效的,从一个标准 url 里取出文件的扩展名   例如: http://www.sina.com.cn/abc/de/fg.php?id=1 需要取出 php 或 .php

2. 在 HTML 语言中,页面头部的 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将()添上

3.写一个函数,能够遍历一个文件夹下的所有文件和子文件夹。

4.简述论坛中无限分类的实现原理。

本文转载处(Http://Www.360docs.net/doc/info-e1c7c66ba98271fe910ef9d4.html)

posted on 2016-05-24 12:52  椰子树  阅读(245)  评论(1编辑  收藏  举报