补充题目答案:
面试题1
1、用PHP打印出前一天的时间格式是2006-5-10 22:21:21
print date('Y-m-d', time()-86400);
2、echo(),print(),print_r()的区别
echo语言结构, print/print_r是函数. print是一般性输出, print_r输出包含底层类型.
3、能够使HTML和PHP分离开使用的模板
?听不懂. smarty?
4、如何实现PHP、JSP交互?
...没用过jsp
5、使用哪些工具进行版本控制?
cvs, subversion
6、如何实现字符串翻转?
print strrev('abc');
7、优化MYSQL数据库的方法。
针对经常用到的关键列多做索引, explain
8、谈谈事务处理
事务处理是指连续性的动作不可被打断的过程, 事务处理失败会撤销相应的影响
9、apache mysql php实现最大负载的方法
...软件角度的提升, 不如硬件角度的提升来得快
10、实现中文字串截取无乱码的方法。
中文是gb2312还是utf8?gb2312和utf8特点判断下就可以了.
面试题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?
'hello'
2.
$a = 1;
$x = &$a;
$b = $a ;
what is $b?
1
3.
$x = empty($array);
what is $x? true or false
true
4.您是否用过版本控制软件? 如果有您用的版本控制软件的名字是?
是.cvs, subversion.
5.您是否用过模板引擎? 如果有您用的模板引擎的名字是?
是.smarty
6.请简单阐述您最得意的开发之作.
还没.一个人不够.想找合作者.
7.对于大流量的网站,您采用什么样的方法来解决访问量问题?
针对动态性不强的ye, 可以生成静态的; 交互性强的, 没多少办法, 我仍然相信性能角度投资软件不如投资硬件.
8.用PHP写出显示客户端IP与服务器IP的代码:
print $_SERVER['remote_addr'].$_SERVER['server_addr'];
面试题3
一、PHP/MySQL编程
1) 某内容管理系统中,表message有如下字段
id 文章id
title 文章标题
content 文章内容
category_id 文章分类id
hits 点击量
创建上表,写出MySQL语句
DROP TABLE IF EXISTS message;
CREATE TABLE IF NOT EXISTS message
(
id INT NOT NULL AUTO_INCREMENT,
title VARCHAR(200) NOT NULL DEFAULT '',
content TEXT,
category_id INT, #这里估计还要改, 暂时放下
hits INT,
PRIMARY KEY(id)
);
CREATE INDEX message_title_index ON message(title);
2)同样上述内容管理系统:表comment记录用户回复内容,字段如下
comment_id 回复id
id 文章id,关联message表中的id
comment_content 回复内容
现通过查询数据库需要得到以下格式的文章标题列表,并按照回复数量排序,回复最高的排在最前面
文章id 文章标题 点击量 回复数量
用一个SQL语句完成上述查询,如果文章没有回复则回复数量显示为0
SELECT m.id, m.title, m.hits, count(comment_id) as total FROM message m LEFT JOIN comment ON (m.id=comment.id) GROUP BY(m.id) ORDER BY total DESC;
3) 上述内容管理系统,表category保存分类信息,字段如下
category_id int(4) not null auto_increment;
categroy_name varchar(40) not null;
用户输入文章时,通过选择下拉菜单选定文章分类
写出如何实现这个下拉菜单
办法很多, 纯javascript(php取出所有分类), javascript/post/php, javascript/ajax/php...
二、PHP文件操作
1)
上述内容管理系统:用户提交内容后,系统生成静态HTML页面;写出实现的基本思路
if (!file_exists($html_file))
{
ob_start();
$html = ob_get_contents();
file_put_contents($file, $html);
ob_end_clean;
}
header('Location: '.$html_file);
exit;
2) 简单描述用户修改以发布内容的实现流程和基本思路
??说什么?
三、PHP程序
1) 写出以下程序的输出结果
$b=201;
$c=40;
$a=$b>$c?4:5;
echo $a;
?>
4
2) 写出以下程序的输出结果
$str=/"cd/";
$$str=/"hotdog/";
$$str.=/"ok/";
echo $cd;
?>
hotdogok
面试题4
一. 简答题
1. 请说明php中传值与传引用的区别。什么时候传值什么时候传引用?
...拷贝消耗比较大时用引用...
2. 在PHP中error_reporting这个函数有什么作用?
控制错误输出级
3. 请写一个函数验证电子邮件的格式是否正确
strpos('@', $str)
4. 简述如何得到当前执行脚本路径,包括所得到参数。
说明:例如有一个脚本 www.domain.com,传给他的参数有参数1,参数2,参数3….
传递参数的方法有可能是GET有可能是POST,那么现在请写出类似
http://www.domain.com/script.php? 参数1=值1&参数2=值2..... 的结果
http://$_SERVER['HTTP_HOST']$_SERVER['SCRIPT_NAME']?$_SERVER['QUERY_STRING']
5.如何修改SESSION的生存时间.
php -i | grep session
6..有一个网页地址 http://www.domain.com/xxx.php,如何得到它的内容?
print file_get_contents('http://www.domain.com/xxx.php');
7. 有一个一维数组,里面存储整形数据,请写一个函数,将他们按从大到小的顺序排列。要求执行效率高。并说明如何改善执行效率。(该函数必须自己实现,不能使用php函数)
算法问题不考虑. 要效率写c去.
8. 请举例说明在你的开发过程中用什么方法来加快页面的加载速度。
可以压缩输出, 我没用过.
二. 数据库设计题:
比较长...不写了
面试题5
1.在PHP中,当前脚本的名称(不包括路径和查询字符串)记录在预定义变量(1)中;而链接到当前页面的URL记录在预定义变量(2)中。
$_SERVER['PHP_SELF'] $_SERVER['HTTP_REFERER'];
2.执行程序段将输出(3)。
2
3.在HTTP 1.0中,状态码 401 的含义是(4);如果返回“找不到文件”的提示,则可用 header 函数,其语句为(5)。
查查RFC就知道了. header('Status: ...');
4.数组函数 arsort 的作用是(6);语句 error_reporting(2047)的作用是(7)。
数组排序后反转并保持key相关. 开启全部出错输出, E_ALL
5.PEAR中的数据库连接字符串格式是(8)。
类似: mysql://user:pass@host/database
6.写出一个正则表达式,过虑网页上的所有JS/VBS脚本(即把script标记及其内容都去掉):(9)。
$re = '|]*>(.*)|i';
$content = preg_replace($re, '$1', $content);
7.以Apache模块的方式安装PHP,在文件http.conf中首先要用语句(10)动态装载PHP模块,然后再用语句(11)使得Apache把所有扩展名为php的文件都作为PHP脚本处理。
LoadModule module_php5 modules/libphp5.so
AddType application/x-httpd-php .php
8.语句 include 和 require 都能把另外一个文件包含到当前文件中,它们的区别是(12);为了避免多次包含同一文件,可以用语句(13)来代替它们。
当文件不存在时, 一个warning, 一个error..............._once
9.类的属性可以序列化后保存到 session 中,从而以后可以恢复整个类,这要用到的函数是(14)。
unserialize
10.一个函数的参数不能是对变量的引用,除非在php.ini中把(15)设为on.
...
11.SQL 中LEFT JOIN的含义是(16)。如果 tbl_user记录了学生的姓名(name)和学号(ID),tbl_score记录了学生(有的学生考试以后被开除了,没有其记录)的学号(ID)和 考试成绩(score)以及考试科目(subject),要想打印出各个学生姓名及对应的的各科总成绩,则可以用SQL语句(17)。
SELECT u.name, SUM(s.score) AS total_score FROM tbl_user u LEFT JOIN tbl_score s ON (u.ID=s.ID) GROUP BY u.ID;
12.在PHP中,heredoc是一种特殊的字符串,它的结束标志必须(18)。
print <<i love this game.
EOF;
13.写一个函数,能够遍历一个文件夹下的所有文件和子文件夹。
function list($dir)
{
foreach(glob(/"$dir/*.*/") as $file)
{<
R> if (is_file($file))
{
//do something
}
else if (is_dir($file))
{
list($file);
}
}
}
14.简述论坛中无限分类的实现原理。
无限分类是不可能的. 来个100层分类shu状显示看看.
15.设计一个网页,使得打开它时弹出一个全屏的窗口,该窗口中有一个文本框和一个按钮。用户在文本框中输入信息后点击按钮就可以把窗口关闭,而输入的信息却在主网页中显示。
window.open,
onClick=opener.close()
面试题6
有一表 menu(mainmenu,submenu,url),请用递归法写出一树形菜单,将所有的menu列出来。
showMenu($menu = 'mainmenu')
{
print $menu;
$sql = /"SELECT submenu FROM menu WHERE mainmenu=$menu/";
//get submenu into array $menus
foreach($menus as $menu)
{
showMenu($menu);
}
}
可以加个$level, 也可以把输出放到数组里
面试题7
1- 给你三个数,写程序求出其最大值。
print $a > $b ? ($a>$c ? $a : $c) : ($b>$c ? $b : $c);
2- 谈谈asp,php,jsp的优缺点
...
3- 谈谈对mvc的认识
...
4- 写出发贴数最多的十个人名字的SQL,利用下表:
members(id,username,posts,pass,email)
SELECT username, COUNT(posts) AS total_post FROM members GROUP BY id ORDER BY total_post DESC LIMIT 10;
面试题8
1-如何通过javascript判断一个窗口是否已经被屏蔽。
try...catch?
2-写出session的运行机制
放个cookie保存session_id, 在sessen.save_path里放个SESS_(session_id)的文件保存serialize过的数据
3-有一数组 $a=array(4,3,8,9,2);请将其重新排序,按从小到大的顺序列出。
sort($a);
print implode(/"/n/", $a);
4-防止SQL注射漏洞一般用_____函数。
sprintf, settype
5-查询在线人数,并能处理异常掉线的SQL
....WHERE ________bzd. 能/"处理异常掉线/", 没这么强的sql吧...