php面试常见问题及答案


PHP #面试2012-05-09 13:19
1、用PHP打印出前一天的时间。格式是2006-5-10 22:21:21(2分)
$now = time();
echo date('y-m-d,h:i:s',$now-60*60*24*1);
  2、echo(),print(),print_r()的区别(3分)
echo — 输出一个或多个字符串。
print — 输出字符串。
print_r()是个函数,打印关于变量的易于理解的信息。
  3、能够使HTML和PHP分离开使用的模板(1分)

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

  5、如何实现字符串翻转?(3分)
$str = 'abcs';
for($i=strlen($str);$i>=0;$i--){
echo $a = substr($str,$i,1);
}
 6、优化MYSQL数据库的方法。(4分,多写多得)
#1: 使用索引
#2: 优化查询性能
#3: 调整内部变量
  7、PHP的意思(送1分)
是英文“超级文本预处理语言”(PHP:Hypertext Preprocessor)的缩写
  8、MYSQL取得当前时间的函数是?,格式化日期的函数是(2分)
select now();SELECT UNIX_TIMESTAMP();
  9、实现中文字串截取无乱码的方法。(3分)
function msubstr($str, $start=0, $length, $charset="utf-8", $suffix=true)
{
if(function_exists("mb_substr"))
return mb_substr($str, $start, $length, $charset);
elseif(function_exists('iconv_substr')) {
return iconv_substr($str,$start,$length,$charset);
}
$re['utf-8'] = "/[\x01-\x7f]|[\xc2-\xdf][\x80-\xbf]|[\xe0-\xef][\x80-\xbf]{2}|[\xf0-\xff][\x80-\xbf]{3}/";
$re['gb2312'] = "/[\x01-\x7f]|[\xb0-\xf7][\xa0-\xfe]/";
$re['gbk'] = "/[\x01-\x7f]|[\x81-\xfe][\x40-\xfe]/";
$re['big5'] = "/[\x01-\x7f]|[\x81-\xfe]([\x40-\x7e]|\xa1-\xfe])/";
preg_match_all($re[$charset], $str, $match);
$slice = join("",array_slice($match[0], $start, $length));
if($suffix) return $slice."…";
return $slice;
}
 10、您是否用过版本控制软件? 如果有您用的版本控制软件的名字是?(1分)

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

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

  13、对于大流量的网站,您采用什么样的方法来解决访问量问题?(4分)
首先,确认服务器硬件是否足够支持当前的流量。
其次,优化数据库访问。
第三,禁止外部的盗链。
 第四,控制大文件的下载。
 第五,使用不同主机分流主要流量
 第六,使用流量分析统计软件。
  14、用PHP写出显示客户端IP与服务器IP的代码1分)
echo $_SERVER['REMOTE_ADDR'];
echo $_SERVER['SERVER_ADDR'];
  15、语句include和require的区别是什么?为避免多次包含同一文件,可用(?)语句代替它们? (2分)
对错误处理不同,include会报错继续执行,require不再向下执行。
  16、如何修改SESSION的生存时间(1分).
php.ini里面 session.gc_maxlifetime = 1440。
  17、有一个网页地址, 比如PHP研究室主页: http://www.php100.com,如何得到它的内容?($1分)
file_get_contents("http://www.php100.com");
  18、在HTTP 1.0中,状态码401的含义是(?);如果返回“找不到文件”的提示,则可用 header 函数,其语句为(?);(2分)
401表示未授权,无权限访问。
1xx 消息
2xx 成功
3xx 重定向
4xx 请求错误
5xx 服务器错误
  19、在PHP中,heredoc是一种特殊的字符串,它的结束标志必须?(1分)
Heredoc结构
第三种定义字符串的方法是用heredoc句法结构:<<<。在该提示 符后面,要定义个标识符,然后是一个新行。接下来是字符串 本身,最后要用前面定义的标识符作为结束标志。
结束时所引用的标识符必须在一行的开始位置, 而且,标识符的命名也要像其它标签一样遵守PHP的规则:只能包含 字母、数字和下划线,并且不能用数字和下划线作为开头。
  20、谈谈asp,php,jsp的优缺点(1分)

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

  22、写出发贴数最多的十个人名字的SQL,利用下表:members(id,username,posts,pass,email)(2分)
select username from members order by posts desc limit 0,10。(这是个陷阱,根本就用不到max()函数,max函数只能拿到一个值。)
  23. 请说明php中传值与传引用的区别。什么时候传值什么时候传引用?(2分)
传值 = 引用& 引用会改变原始值,传值不会。
  24. 在PHP中error_reporting这个函数有什么作用? (1分)
设置错误级别。

相关文章

粤ICP备11097351号-1