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)

转载于:https://www.cnblogs.com/yezhishu/p/5523035.html

PHP面试题汇总参考相关推荐

  1. 2020最新软件测试面试题汇总【内附参考答案】,拼多多面试官看了都说,卧槽!!!

    2020最新软件测试面试题汇总[内附参考答案] 测试技术面试题 1.什么是兼容性测试?兼容性测试侧重哪些方面? 参考答案: 兼容测试主要是检查软件在不同的硬件平台.软件平台上是否可以正常的运行,即是通 ...

  2. access汇总含义_2020最新大厂内部 PHP 高级工程师面试题汇总(二)

    51.数据库中的存放了用户 ID, 扣费很多行,redis 中存放的是用户的钱包,现在要写一个脚本,将数据库中的扣费记录同步到 redis 中,每 5 分钟执行一次.请问要考虑哪些问题? 思路:生产者 ...

  3. 程序员必看 c++笔试题汇总

    ①链表反转 单向链表的反转是一个经常被问到的一个面试题,也是一个非常基础的问题.比如一个链表是这样的: 1->2->3->4->5 通过反转后成为5->4->3-& ...

  4. 超全!iOS 面试题汇总

    超全!iOS 面试题汇总 2015-10-20 CocoaChina 作者:Job_Yang 之前看了很多面试题,感觉要不是不够就是过于冗余,于是我将网上的一些面试题进行了删减和重排,现在分享给大家. ...

  5. dotNET面试题汇总系列连载(1):基础语法

    点击上方"dotNET全栈开发","设为星标" 加"星标★",每天11.50,好文必达 全文约4000字,预计阅读时间8分钟 马上要到202 ...

  6. Java List面试题汇总

    转载自 Java List面试题汇总 1.你知道的List都有哪些? 2.List和Vector有什么区别? 3.List是有序的吗? 4.ArrayList和LinkedList的区别?分别用在什么 ...

  7. 网易校园招聘历年经典面试题汇总:C++研发岗

    这个系列计划收集几百份朋友和读者的面经,作者合集方便查看,各位有面经屯着可以联系我哦 这个系列离结束差的还特别多,会更新涵盖所有一线大厂的所有岗位,也可以关注一下. 腾讯校园招聘历年经典面试题汇总:前 ...

  8. Spring 经典面试题汇总.pdf(2020版)

    作者 | 静默虚空 来源 | juejin.im/post/5cbda379f265da03ae74c282 1.基础 1.1. 不同版本的 Spring Framework 有哪些主要功能? Ver ...

  9. 校招笔试C语言,校招c ++笔试题汇总

    ①链表反转 单向链表的反转是一个经常被问到的一个面试题,也是一个非常基础的问题, 最容易想到的方法遍历一遍链表,利用一个辅助指针,存储遍历过程中当前指针指向的下一个元素,然后将当前节点元素的指针反转后 ...

最新文章

  1. 2_Selenium对象识别
  2. 宏基因组蚂蚁森林合种——胡杨专车
  3. 中国移动宽带业务怎么样?和电信的比有什么不同?
  4. 什么是“ 2的补码”?
  5. php子域枚举,PHP中实现多值枚举
  6. 关于 /dev/null 与 /dev/zero
  7. 神经网络 | Mask Scoring R-CNN:实例分割综述
  8. SAP Spartacus B2B 页面popover对话框的渲染逻辑
  9. vue中路径带# vs 不带#
  10. 求一个任意实数c的算术平方根g的算法设计思想_算法复习第四篇——贪心法
  11. “是男人就下100层”
  12. scala的函数(day02)
  13. 吴恩达机器学习笔记 1单变量线性回归
  14. 这些大佬告诉你,在先进计算与AI领域该往哪个方向冲!
  15. 护航亚运|安恒信息推出“九维五星” ,并强调将全面突出“智能亚运”
  16. Python中的while循环
  17. dxdiag 的使用
  18. python四级是什么水平_四级能过的水平大概什么水平?
  19. 机器学习第四章之逻辑回归模型
  20. matlab函数merge_MATLAB数据合并方法

热门文章

  1. java 结束循环_java中结束循环的方法
  2. DirectUI技术与无句柄窗口应用
  3. 史上最全的MySQL优化手册
  4. 执行shell脚本进入指定目录
  5. 并发容器J.U.C -- AQS组件(一)
  6. linux设置自己的网站,我是如何在Linux服务器部署自己的网站
  7. 300万微信公众号迎来广告时代
  8. 易基因 - 学科前沿:转录组测序在原核致病菌中的研究应用(1)|文献科普
  9. 机器人社社长事迹_科技之星事迹材料
  10. 开源IDS系列--【2015】获取snort vrt 规则(talo)