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)
PHP面试题汇总参考的更多相关文章
- Linux面试题汇总答案
转自:小女生的Linux技术~~~Linux面试题汇总答案~~ 一.填空题:1. 在Linux系统中,以 文件 方式访问设备 .2. Linux内核引导时,从文件 /etc/fstab 中读取要加载的 ...
- 收藏所用C#技术类面试、笔试题汇总
技术类面试.笔试题汇总 注:标明*的问题属于选择性掌握的内容,能掌握更好,没掌握也没关系. 下面的参考解答只是帮助大家理解,不用背,面试题.笔试题千变万化,不要梦想着把题覆盖了,下面的题是供大家查漏补 ...
- 100个iOS开发面试题汇总-王刚韧的技术博客
100个iOS开发面试题汇总 关于iOS开发面试,不管对于招聘和应聘来说,面试都是很重要的一个环节,特别对于开发者来说,面试中的技术问题环节不仅是企业对应聘者技能和积累的考察,也是一个开发者自我检验的 ...
- 100个iOS开发/设计程序员面试题汇总,你将如何作答?
100个iOS开发/设计程序员面试题汇总,你将如何作答? 雪姬 2015-01-25 19:10:49 工作职场 评论(0) 无论是对于公司还是开发者或设计师个人而言,面试都是一项耗时耗钱的项目, ...
- 100个iOS开发面试题汇总
100个iOS开发面试题汇总 关于iOS开发面试,不管对于招聘和应聘来说,面试都是很重要的一个环节,特别对于开发者来说,面试中的技术问题环节不仅是企业对应聘者技能和积累的考察,也是一个开发者自我检验的 ...
- c#面试题汇总(1)
c#面试题汇总 From: https://www.cnblogs.com/suzhiyong1988/p/5069385.html 下面的参考解答只是帮助大家理解,不用背,面试题.笔试题千变万化 ...
- PHP 高级工程面试题汇总
PHP高级工程面试题汇总(2018.05) 1.给你四个坐标点,判断它们能不能组成一个矩形,如判断([0,0],[0,1],[1,1],[1,0])能组成一个矩形. 勾股定理,矩形是对角线相等的四边形 ...
- 2019前端面试题汇总(主要为Vue)
摘要: 经典面试题. 原文:2019前端面试题汇总(主要为Vue) 作者:前端小酱 Fundebug经授权转载,版权归原作者所有. 毕业之后就在一直合肥小公司工作,没有老司机.没有技术氛围,在技术的道 ...
- Linux面试题汇总答案(转)
转自:小女生的Linux技术~~~Linux面试题汇总答案~~ 一.填空题:1. 在Linux系统中,以 文件 方式访问设备 .2. Linux内核引导时,从文件 /etc/fstab 中读取要加载的 ...
随机推荐
- 利用merge存储引擎来实现分表
我觉得这种方法比较适合,那些没有事先考虑,而已经出现了得,数据查询慢的情况.这个时候如果要把已有的大数据量表分开比较痛苦,最痛苦的事就是改代码,因为程序里面的sql语句已经写好了,现在一张表要分成几十 ...
- R包——ggplot2(二)
关于ggplot包(二) 关于ggplot包(二) 标尺(Scale) 从前面可以看到,画图其实就是在做映射,不管是映射到不同的几何对象上,还是映射各种图形属性.在对图形属性进行映射之后,使用标尺可以 ...
- JSP数据交互——九大内置对象及其方法详解(一)
①既然说到JSP内置对象,那么什么是JSP内置对象呢? 解析:JSP内置对象,就是在编写JSP页面时,不需要做任何声明就可以直接使用的对象. 如下代码片段: <% int[] value ...
- 原生js倒计时和显示当前时间
<!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content ...
- 1)phpmyadmin导入数据库大小限制修改
phpmyadmin默认导入数据库文件大小为2M,但一般网站的数据库导出的文件都会超出这个限制,要导入超过2M的数据库文件就需要手动修改php.ini配置文件!最近做项目遇到这个问题,顺便记录下了解决 ...
- CSS中的特殊性、继承、层叠
前言 最近在看<CSS权威指南>,书中第三章“结构和层叠”对特殊性的解释十分到位,今天就来整理下思路,记录如下. 初来乍到,有何不妥请多多指点,有时间的话顺便评论下,讨论讨论~ 引入问题
- 浅谈 android-query
介绍:android-query他是在GitHub上的一个开源轻量级的封装库,它集成了网络 .图片加载等模块,可以应用在android中的一些异步应用以及UI的操纵上,通过使用这个框架,使androi ...
- 《windows程序设计》学习_3.3:利用xp扫雷资源
#include<windows.h> #include "resource.h" LRESULT CALLBACK WndProc (HWND, UINT, WPAR ...
- javascript - Show mouse cursor in phantom.js - Stack Overflow
javascript - Show mouse cursor in phantom.js - Stack Overflow Show mouse cursor in phantom.js
- android解决内存溢出的问题(没有从根本上解决)
Android游戏虚拟机算法JNI 尽量不要使用setImageBitmap或setImageResource或BitmapFactory.decodeResource来设置一张大图,因为这些函数在完 ...