zoukankan      html  css  js  c++  java
  • 近期面试总结(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索引的区别

  • 相关阅读:
    HDU_1006_Tick and Tick
    HDU_1011_Starship Troopers_树型dp
    HDU_1520_Anniversary party_树型dp
    HDU_1176_免费馅饼_16.4.23再做
    HDU_1203_01背包
    HDU_1421_搬寝室_dp
    HDU_1505_矩阵中的最大矩形_dp
    STL_map的使用
    Semantic-UI-React (称 stardust) 对比 Antd
    meteor 为基础,联合 Apollo + React + React-Router
  • 原文地址:https://www.cnblogs.com/Lance--blog/p/7700704.html
Copyright © 2011-2022 走看看