美文网首页
php2017面试题

php2017面试题

作者: LeftJoin | 来源:发表于2017-07-25 16:30 被阅读0次

    1.写出创建多级目录的函数(新浪校招)

    function  mkdirs($dir,$chmod)

    {

    if(is_dir($dir)){

    return "目录已存在";

    }

    if(mkdir($dir,$chmod,true)){

    return "成功";

    }

    return "失败";

    }

    echo mkdirs('./aa/bb/cc',777);

    2.函数内部 static 和 global 关键字的作用、

    $b =1;

    function foo()

    {

    static $a = 1;

    global $b;

    $b = $b++;

    return $a++;

    }

    echo $b;

    echo foo();

    echo foo();

    3.子类重写父类的 protected 方法有什么限制?或者说有什么要遵守的规则?

    php 继承 子类的权限只能放大

    4.谈一谈 PHP 开源框架 CI,ThinkPHP,Laravel 的优缺点及选型依据

    问这个题目的面试官都是脑残

    5.Memcache 和 Redis 的读写性能(qps)如何?两者优缺点?Redis 支持哪些数据类型?Redis 如何持久化?

    6.使用 PHP 下载网络图片,有哪些方法?

    1.file_get_contents($file_url);

    2.使用CURL

    3..使用fopen

     7。什么是 CGI?什么是 FastCGI?php-fpm,FastCGI,Nginx 之间是什么关系?

    CGI是HTTP Server和一个独立的进程之间的协议,把HTTP Request的Header设置成进程的环境变量,HTTP Request的正文设置成进程的标准输入,而进程的标准输出就是HTTP Response包括Header和正文。

    FASTCGI是和HTTP协议类似的概念。无非就是规定了在同一个TCP连接里怎么同时传多个HTTP连接。这实际上导致了个问题,有个HTTP连接传个大文件不肯让出FASTCGI连接,在同一个FASTCGI连接里的其他HTTP连接就傻了。所以Lighttpd? 引入了 X-SENDFILE

    php-fpm就相当于是Apache+mod_php。无非php-fpm自带了FASTCGI Server,而Apache是HTTP Server。

    8.什么是 CSRF 攻击 ?XSS 攻击?如何防范?

    XSS(跨站脚本攻击)和CSRF(跨站请求伪造)

    CSRF

    1、使用token进行验证。可以在 HTTP 请求中以参数的形式加入一个随机产生的 token,并在服务器端建立一个拦截器来验证这个 token,如果请求中没有 token 或者 token 内容不正确,则认为可能是 CSRF 攻击而拒绝该请求。(使用GET或POST方法加TOKEN)

    2、验证HTTP Referer字段。HTTP Referer字段,记录该HTTP请求的来源。如果来源是外部,那么就拒绝这个请求。(这个方法不安全,可以篡改HTTP Referer字段)

    3、一般框架,像ThinkPHP、laravel有表单令牌可以做防范。

    XSS

    最简单的办法,过滤输入。对用户的输入,可以使用htmlspecialchars()等函数进行过滤转义,当然,一些文件上传等,也可能会造成此攻击,要限制上传文件的类型,比如只能传图片等。

    9.列举常用的设计模式并说明?单例模式,观察者模式等等

    单例 常见的就是数据库操作类~ 观察者 一般应用于一对多处理吧  

    观察者  定义两个接口 一个观察者 一个被观察者  被观察者 定义一个方法接收多个 观察者的对象循环调用同名方法 

    代理模式 就是在另一个构造 方法里面 new 另一个对象

    10.

    相关文章

      网友评论

          本文标题:php2017面试题

          本文链接:https://www.haomeiwen.com/subject/zwcjkxtx.html