您的位置:首页 > 职场人生

近期面试总结(PHP后端开发工程师)(部分笔试题)

2017-10-20 17:42 591 查看
1.字符串"0"在PHP和js中转换为布尔值是false还是true

php:false;  php 弱语言 '0'和0一样;

js:true;字符串除了空字符串('')其他都是true(包括' ' 这种中间有空格的);


2.   echo,print_r ,print,var_dump 区别

echo:语句结构;

print:是函数,有返回值

print_r:能打印数组,对象

var_dump:能打印对象数组,并且带数据类型


3.如何获取客户端的IP(要求取得一个int)和服务器端的IP的代码

$ip = $_SERVER["REMOTE_ADDR"];  或者:getenv('REMOTE_ADDR');

转化为int  $intIP =  ip2long($ip);

$_SERVER["SERVER_ADDR"];

gethostbyname('www.baidu.com');


4. mysql联合索引index_a_b_c(a,b,c) charset=utf8,a int(10),b varchar(10),c tinyint(1),问条件where a = 5 and c = 1用到的索引长度。

索引长度:4+1 = 5 (用到a,c)

where a=5 and b = "hahah";

索引长度:4+10*3+2 = 36 (用到a,b)

5.json和jsonp的区别,什么时候用。

jsonp 跨域请求

6.写出点击一个div出现相应的序号的js

7.session和cookie的区别和联系

8.PHP实现遍历出文件夹和他下面子文件的代码

1.  <?php

2.           $dir = '/Users/zhaoning/Desktop/算法';

3.

4.           function getAllFile($dir){

5.                   $allFileArr = array();

6.                   if (is_dir($dir)) {

7.                            $res = opendir($dir);

8.                            while ($row = readdir($res)) {

9.                                     if ($row == '.' || $row == '..') {

10.                                             continue;

11.                                    }

12.                                    if (is_file($dir.'/'.$row)) {

13.                                             $allFileArr[] = $row;

14.                                    }else if (is_dir($dir.'/'.$row)) {

15.                                             $allFileArr[$row] = getAllFile($dir.'/'.$row);

16.                                    }

17.                           }

18.                           closedir($res);

19.                  }

20.                  return $allFileArr;

21.          }

22.          var_dump(getAllFile($dir));

23. ?>


9.写出匹配html标签的而不匹配div span img的正则表达式

10.写出下面正则表达式的含义

$ ^ [^] ? ?:

11.PHP中this和self的区别

this:对象

self:类

12.如何防止SQL注入,XSS攻击和CSRF攻击

SQL注入:mysqli_real_escape_string()转义关键字符;

XSS攻击:alert把一些cookie信息打印出来;过滤掉<>等关键字符串

CSRF攻击:跨站攻击。防止:token,验证码

13.Linux的命令:查找出文件名后缀是.txt的,内容包含delete的文件,并删除

1.  find / -name "*.txt" | xargs -n1 -I(这是i) 'xxx' grep -l(这是L)  'delete' 'xxx' | xargs -n1 -I 'zzz' rm -f 'zzz'


14.PHP解决多进程读写一个文件的方法

1.  function putFile($file,$mode="w"){

2.           $file = fopen($file,$mode);

3.           if(flock($file,LOCK_EX)){

4.                   fwrite($file,'write a word');

5.                   flock($file,LOCK_UN);

6.           }else{

7.                   echo "无法访问";

8.           }

9.           fclose($file);

10. }


15.数据库表的引擎有哪几种?区别和场景

MyISAM:多用于select

Innodb:事务

memory:内存中,存储快

merge:用于日志和数据仓库

archive:用于日志,只有select和insert,不支持索引。

16.nginx和PHP的工作原理

17.ES连接PHP的扩展叫什么名字

elasticsearch

18.调用接口需要什么,签名怎么生成的,登陆接口的实现

签名:( token + 时间戳 ) 加密 = sign

19.接口返回包含哪几部分。

1.  {

2.      code:

3.      msg:

4.      data:{}

5.  }


1.不知道什么的英文

2.PHP错误种类.

3.var_dump(0123==123);var_dump('0123'==123);  false true


4.36个人,6个赛道,没有秒表,比赛多少次能够得出前三名?

5.正方形四个角有四个虫子,虫子沿边走,问:虫子相遇(两个碰头)的概率是多少?

6.A去买水果3.5斤共14元,给老板B 20 元 ,B没零钱,找隔壁C换20元,回来后找A 6元,C发现这个钱是假的,找B,B又给C 20 元。问:B一共亏了多少钱。

7.快排

8.同一个ip,10分钟能只能访问5次

9.设计微博粉丝互粉,用户1亿。

问答:

http协议包含几部分。

接口是怎么实现的。

token 是怎么生成的。

你知道哪些加密。

如何防止http包的数据篡改。比如说转账10块,http包被劫,改成100块了。

针对有项目经验的面试梳理:

1.自我介绍。

在哪工作,多长时间。做了什么东西,项目背景,用到的技术,负责什么工作。

答案:之前在滴滴打车工作,工作半年多。参加的项目有谷雨移动和司机帮。谷雨移动是(移动端)为汽车租赁公司提供管理旗下快车的软件。主要用的PHP+redis+ES。我主要负责服务分和各项报表的查询和汇总。司机帮主要是面向快车司机的,司机能够查看自己的流水和服务分,服务时长等各项数据。我主要负责服务分的排名。

问:redis起什么作用?

减少访问es的次数

懒加载(访问redis没有数据,然后去查ES,把结果导入数据redis里面)有什么弊端?

数据不同步的问题。

怎么解决数据不同步?

1.把懒加载换成定时跑数据。

2.从ES里面读取近期是否有数据变化,如果有从新读取ES。没有的话在还用原来的redis里面的数据。

2.apache和nginx的区别

工作模式:

apache 有两种模式perfork,worker模式

perfork:

worker:

nginx的epoll和select:

epoll:模式单线程异步非阻塞。

select:选择性的

3.Innodb和My ISAM的区别

MyISAM:

支持全文索引,

不支持事务。

存储结构:三个文件,一个数据文件,一个索引文件,一个表文件。

表级别的锁。

Innodb:

不支持全文索引,

支持事务。

存储结构:所有表同一个文件。

行级别的锁。

4.hash索引和b+tree索引的区别
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: