PHP的面试题集收集整理
面试题1
1、用PHP打印出前一天的时间格式是2006-5-10 22:21:21
date_default_timezone_set(‘Asia/Shanghai’);
$times = time()-86400;
echo date(‘Y-m-d H:i:s’,$times);
2、echo(),print(),print_r()的区别
echo 只能打印字符串
print 可以打印字符串和数组中指定的值
print_r 打印数组中所有的值,不能打印字符串
3、能够使HTML和PHP分离开使用的模板
4、如何实现PHP、JSP交互?
JSP = JavaServerPage
5、使用哪些工具进行版本控制?
使用过svn
6、如何实现字符串翻转?
Strrev($str)
7、优化MYSQL数据库的方法。
根据事务处理机制,采用innDB表或myIsam表。
优化sql语句,优化表字段结构。
8、谈谈事务处理
是指把若干个字操作组成一个完整的操作,保证这个完整的操作要么全部成功,要么全部失败。而不会部分成功,部分失败。一次银行转账有两个操作,从A账户扣钱,给B账户加钱。这是两个自操作,但整个操作必须是一个事务的,以保证不会出错。一般提到事务,多半指数据库事务,在开始一个事务前,调用 trans begin,全部搞定后 trans commit。当中出问题了自动回滚,也可以需要的时候手动rollback。但基本就是: begin,commit,rollback。
9、apache+mysql+php实现最大负载的方法
采用缓存机制:静态缓存,memcache等。根据事务处理机制,采用innDB表或myIsam表。
优化sql语句,优化表字段结构。
10、实现中文字串截取无乱码的方法。
从指定位置开始截取1位,判断ass码范围(ord函数),根据不同情况截取1,2,3位长度。存入数组。下一次截取响应往后1,2,3位。依次类推。最后合并数组为字符串,打印字符串。
面试题2
var $empty = ”;
var $null = NULL;
var $bool = FALSE;
var $notSet;
var $array = array();
1.
$a = “hello”;
$b = &$a;
unset($b);
$b = “world”;
what is $a? hellow
2.
$a = 1;
$x = &$a;
$b = $a++;
what is $b? 1
3.
$x = empty($array);
what is $x? true or false true
4.您是否用过版本控制软件? 如果有您用的版本控制软件的名字是?
使用过svn
5.您是否用过模板引擎? 如果有您用的模板引擎的名字是?
用过康盛dz的模版机制
6.请简单阐述您最得意的开发之作.
7.对于大流量的网站,您采用什么样的方法来解决访问量问题?
缓存机制
8.用PHP写出显示客户端IP与服务器IP的代码:
echo $_SERVER[‘SERVER_ADDR’];
echo $_SERVER[‘REMOTE_ADDR’];
面试题3
一、PHP/MySQL编程
1) 某内容管理系统中,表message有如下字段
id 文章id
title 文章标题
content 文章内容
category_id 文章分类id
hits 点击量
创建上表,写出MySQL语句
create table message(id int(32) primary key autoincrement ,title varchar(255),content text,category_id tinyint(1),hits smallint(8))
2)同样上述内容管理系统:表comment记录用户回复内容,字段如下
comment_id 回复id
id 文章id,关联message表中的id
comment_content 回复内容
现通过查询数据库需要得到以下格式的文章标题列表,并按照回复数量排序,回复最高的排在最前面
文章id 文章标题
点击量
回复数量
用一个SQL语句完成上述查询,如果文章没有回复则回复数量显示为0
select message.id,message.hits,comment.count
SELECT t.id, t.title, t.hits, COUNT( c.comment_id )
FROM message t
LEFT JOIN COMMENT c ON t.id = c.id
GROUP BY t.id, t.title, t.hits
ORDER BY COUNT( c.comment_id )
LIMIT 0 , 30
3) 上述内容管理系统,表category保存分类信息,字段如下
category_id int(4) not null auto_increment;
categroy_name varchar(40) not null;
用户输入文章时,通过选择下拉菜单选定文章分类
写出如何实现这个下拉菜单
$link = mysql_connect(……);
Mysql_select_db(….,$link);
$sql = ‘select category_id, categroy_name from category’;
$result = mysql_query($sql,$link);
Echo “<select name=’st’>”;
While($row = mysql_fetch_array($result)){
Echo “<option value='”.$row[‘category_id’].”‘>”.$row[‘categroy_name’].”</option>”
}
Echo “</select>”;
二、PHP文件操作
1)
上述内容管理系统:用户提交内容后,系统生成静态HTML页面;写出实现的基本思路
将用户提交的内容写入数据库。再从数据库取出这些数据,生成缓存字符串cache,加载模版html静态页面,解析缓存cache,将数据导入静态页面。保存为缓存文件,存放入指定目录。
2) 简单描述用户修改以发布内容的实现流程和基本思路
从数据库读取信息,显示在修改页面。用户修改,最后提交。写入数据库。更新缓存文件。
三、PHP程序
1) 写出以下程序的输出结果