`

色色整理的PHP面试题,能答对找7/8k应该不成问题

阅读更多

总是有人问我要这些,让我帮出题... 现在发份上来吧,如果能做完做好,建议薪资在 6-9之间都可以给...

 

水平应该能达到 中

 

这个是我12年左右招人想出来的,基本是满足初中级的PHP面试了

写道
PHP 基础知识部分

1. 求$a的值

$a = "hello";
$b = &$a;
unset($b);
$b = "world";
echo $a;

2. 求$b的值

$a = 1;
$x = &$a;
$b = $a++;
echo $b;

3. 写出一个函数实现 删除指定目录包括其下的所有子目录以及文件

4. 写一个函数,算出两个文件的相对路径,如:
$a = '/a/b/c/d/e.php';
  $b = '/a/b/12/34/c.php';


javascript 基础知识部分

1. 谈谈js实现继承的几种方式,并写出demo

2. 谈谈你熟悉的js框架,并实现下面DOM元素的获取

<div drag="true" index="1"></div>
<div drag="true" index="2"></div>
<div drag="true"></div>

要求找到drag="true" 并且 index="1" 或 无index属性的div

提示: 如果不能一次写出,请完成下来步骤
1. 找到drag="true" 并且 index="1"

2. 找到drag="true" 并且 无index属性的

3. 将二者联立起来得到


3. 实现一个遮罩层效果,要求要显示的元素在页面上居中显示

4. 闭包知识考察

function step(a){
return function(x){
return x+a++;
}
}

var a = step(10);
var b = step(20);
alert(a(10));
alert(b(20));
var a="123abc";
alert(typeof(a++));
alert(a);


MySQL 知识部分

1. 某内容管理系统中,表message有如下字段
id 文章id
title 文章标题
content 文章内容
category_id 文章分类id
hits 点击量

创建上表,写出MySQL语句

2. 同样上述内容管理系统:表comment记录用户回复内容,字段如下
comment_id 回复id
id 文章id,关联message表中的id
comment_content 回复内容

现通过查询数据库需要得到以下格式的文章标题列表,并按照回复数量排序,回复最高的排在最前面

文章id 文章标题 点击量 回复数量

用一个SQL语句完成上述查询,如果文章没有回复则回复数量显示为0


3. 上述内容管理系统,表category保存分类信息,字段如下

category_id int(4) not null auto_increment;
categroy_name varchar(40) not null;

用户输入文章时,通过选择下拉菜单选定文章分类

写出如何实现这个下拉菜单[可使用PHP,JAVASCRIPT,HTML]


Mysql 知识扩展部分

4. 系统需要对分类表进行扩展,使它能支持无限级别分类,请设计这个表结构,并根据你的设计完成下述场景

1. 查找隶属指定分类下的所有文章(包含子分类下的所有文章)
2. 查找指定文章的分类到根分类的层级,比如:
文章"Mysql优化心得" 它对应在 "程序设计/Mysql/运维/" 下
3. 删除分类时要求也能删除其下所有子分类


5. 系统需要对文章增加标签功能,(标签与文章是多对多的关系),用于实现"相关文章"功能.请设计这个表结构,
并根据你的设计完成下述场景.

1. 查找 与指定文章最相近的五篇文章 (相似度的算法 以相同标签的数量作为依据,数量越大说明越相似)


综合知识部分:

1. 谈谈你对Cookie 与 Session 的理解,它们的适用场景是什么,如有可能可阐述下在多种应用下Session如何共享的思路

2. 谈谈你对单点登录的理解,比如原理与实现,以及实现过程中有哪些问题需要注意

3. 谈谈你对MVC的理解,MVC的缺点是什么,如果让你实现一个MVC框架,你想怎样实现?

4. 谈谈你平常工作中使用过的权限管理部分,你是如何理解与实现的?

 

2
2
分享到:
评论
3 楼 vb2005xu 2015-05-04  
<?php
/** 计算path1 相对于 path2 的路径,即在path2引用paht1的相对路径
* @param  String $path1
* @param  String $path2
* @return String
*/
function getRelativePath($path1, $path2){
    $arr1 = explode('/', $path1);
    $arr2 = explode('/', $path2);

    // 获取相同路径的部分
    $intersection = array_intersect_assoc($arr1, $arr2);

    $depth = 0;

    for($i=0,$len=count($intersection); $i<$len; $i++){
        if(!isset($intersection[$i])){
            $depth = $i;
            break;
        }
    }

    // 将path2的/ 转为 ../,path1获取后面的部分,然后合拼
    $tmp = array_merge(array_fill(0, count($arr2)-$depth-1, '..'), array_slice($arr1, $depth));

    $relativePath = implode('/', $tmp);

    return $relativePath;
}
?>

2 楼 vb2005xu 2015-05-04  
再发一个哥们出的,考察2年以下工作经验的童鞋们
引用

php面试题 可上网查询 可查手册 电脑桌面上有php手册


程序目录 E:\data\webroot 和测试 \data\webroot同步

在浏览器访问 http://10.10.10.10 进行测试

测试机 10.10.10.10 ssh user:vagrant pass:vagrant  有sudo权限

memcache 127.0.0.1 11211
redis 127.0.0.1 6379
mysql  127.0.0.1 用户名root 密码为空

题A


1.请写代码完成一个简单的图片上传过程

2.请在mysql表中创建你的姓名全拼的数据库名 并创建一个用户表 表中字段 表中包括 用户名 密码 真实姓名 邮箱 手机号 性别 登录ip 注册时间

3.在第二题所创建的表中 写程序插入10000条数据 (代码中自己生成数据)

4.做一个登录页面 并做客户端和服务器端验证

5.做用户列表分页显示


题B


1.不用GUI工具,命令行在测试机数据库  库名 你名字全拼  创建user表  字段包括不限于 用户名 密码 真实姓名 邮箱  手机号 性别 登录ip 注册时间
  并给出建表的sql语句。

2.命令行给你的库表 创建一个用户 绑定到你的数据库 权限仅为读和写。 给出sql语句

3.写一个数据库连接类 要求以单例模式实现。

4.根据你创建的用户表, 构造一个user类,尽可能的将各种可能用到的属性,方法写完整。

5.user表不动  扩展出一个店主用户表来 属性包括不限于  店铺名 开店时间  店铺地址 店铺邮编 并写一个shopUser类继承user类  增加 新增店铺 删除店铺 查询店铺属性等方法
1 楼 freezingsky 2014-03-07  
4. 写一个函数,算出两个文件的相对路径,如:
$a = '/a/b/c/d/e.php';
$b = '/a/b/12/34/c.php';

就这道题还有点意思,相当于求二个字符串的公共最大子串。不过,现场笔试的时候,基本都是采用暴力方式去匹配吧。

相关推荐

Global site tag (gtag.js) - Google Analytics