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

1.字符串"0"在PHP和js中转换为布尔值是false还是true

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

  js:true;字符串除了空字符串('')其他都是true(包括' ' 这种中间有空格的);
2.   echoprint_rprint,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索引的区别

转载于:https://www.cnblogs.com/Lance--blog/p/7700704.html

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值