zoukankan      html  css  js  c++  java
  • 新浪PHP面试题

    1、cookie、session的联系和区别,多台web服务器如何共享session?

    cookie在客户端保存状态,session在服务器端保存状态。但是由于在服务器端保存状态的时候,在客户端也需要一个标识,所以session也可能要借助cookie来实现保存标识位的作用。
    cookie包括名字,值,域,路径,过期时间。路径和域构成cookie的作用范围。cookie如果不设置过期时间,则这个cookie在浏览器进程 存在时有效,关闭时销毁。如果设置了过期时间,则cookie存储在本地硬盘上,在各浏览器进程间可以共享。
    session存储在服务器端,服务器用一种散列表类型的结构存储信息。当一个连接建立的时候,服务器首先搜索有没有存储的session id,如果没有,则建立一个新的session,将session id返回给客户端,客户端可以选择使用cookie来存储session id。也可以用其他的方法,比如服务器端将session id附在URL上。
    区别:

    (1).cookie在本地,session在服务器端。
    (2).cookie不安全,容易被欺骗,session相对安全。
    (3).session在服务器端,访问多了会影响服务器性能。
    (4). cookie有大小限制,为3K
    多服务器共享session可以尝试将session存储在memcache中。

    2、http协议中的post和get有何区别?

    GET用于获取信息,不应该用于修改信息,POST可用于更新修改信息。
    GET可传输数据大小和URL有关,而POST没有限定大小,大小和服务器配置有关。
    GET放在URL中,因此不安全,而POST传输数据对于用户来说是不可见的,所以相对安全。
    在ajax: post不被缓存,get被缓存所以一般在请求结尾加Math.random();
    SERVER端接受:因为在submit提交的时候是按不同方式进行编码的,所以服务端在接受的时候会按照不同的方式进行接受!
    编码方式:如果传递数据是非-ASCII,那么GET一般是不适应的,所以在传递的时候会做编码处理!

    3、reqiure的include都可包含文件,二者的区别何在?
    require在包含文件出错之后返回致命错误,跳出运行,而include 在包含文件出错之后返回警告信息,继续运行。

    4、php中web上传文件的原理是什么,如何限制上传文件的大小?

    PHP上传文件默认大小为2M,设置上传大小的配置项是upload_max_filesize,post_max_size设置一次POST中PHP能接收的最大数据量,应该比upload_max_filesize大。

    5、写一个函数,可以遍历文件夹下的所有文件和文件夹。

      不知道我的理解是不是不对,如果是简单的列出文件和文件夹的话,下面两个应该可以。本人水平菜,没发现什么陷阱..考虑了一下,会不会题目是要 求做一个遍历,把子文件夹下的文件都要显示出来,这样的话需要使用递归对文件夹进行显示。对每次scandir出来的条目进行is_dir判断,是dir 的话递归进行下一轮的scandir。

    function bianli($dir)
     {
          if(is_dir($dir))
          {
                $output = scandir($dir);
                print_r($output);
          }
     }
     
    function bianli2($dir)
    {
               if(is_dir($dir)){
               $command = "ls -a $dir";
               $ret = `$command`;
               $pattern = "/S+/";
               if(preg_match_all($pattern,$ret,$matches))
               {
                               print_r($matches);
               }
        }
    }

    6、有mail.log的一个文档,内容为若干邮件地址,其中用’ ’将邮件地址分隔。要求从中挑选出sina.com的邮件地址(包括从文件读取、过滤到列印出来)。

    $mail = file_get_contents('mail.log');
    $pattern = "/S+sina.com/";
    $rpattern = "/\n/";
    preg_filter($rpattern,"",$mail);
    if(preg_match_all($pattern,$mail,$matches))
    {
         print_r($matches);
    }
  • 相关阅读:
    CKEDITOR最新版不能上传图片的解决
    Java Web开发之Servlet获取ckeditor内容
    『实践』Java Web开发之分页(ajax)
    Java开发之JSP行为
    [Wpf学习] 1.传说中的Main
    直接使用汇编编写 .NET Standard 库
    ASP.NET CORE 启动过程及源码解读
    使用EventBus + Redis发布订阅模式提升业务执行性能(下)
    Android 实现浏览器跳转APP应用,网页也可以跳转APP
    Python全栈(七)Flask框架之1.Flask简介与URL和视图介绍
  • 原文地址:https://www.cnblogs.com/SherryIsMe/p/3487262.html
Copyright © 2011-2022 走看看