• 经典面试题(一)


    1.正在浏览当前页面用户的 IP 地址:127.0.0.1
    echo $_SERVER['REMOOT_ADDR'];  或者 getenv('REMOOT_ADDR');
      服务器端的IP:gethostbyname('www.baidu.com');

    2.假设a.html和b.html在同一个文件夹下面,用javascript实现当打开a.html五秒钟后,自动跳转到b.html。
    function go2b(){
    window.location = “b.html”;
    window.close();
    }
    setTimeout( “go2b()”,5000 ); //5秒钟后自动执行go2b()

    3.查询(query)的字符串(URL 中第一个问号 ? 之后的内容):id=1&bi=2
      * $_SERVER["QUERY_STRING"]  获取当前URL?后面的值
     $_SERVER["SCRIPT_NAME"]   获取当前脚本的路径,如:index.php
     $_SERVER["PHP_SELF"]      当前正在执行脚本的文件名

     方法一:$require=$_SERVER['QUERY_STRING'];
     方法二:$info=parse_url($url);$require=$info['query'];

    4.当前运行脚本所在的文档根目录:d:inetpubwwwroot
      echo $_SERVER['DOCUMENT_ROOT'];

    5.写一个函数,能够遍历一个文件夹下的所有文件和子文件夹。
     function _scandir($dir){
      $files=array();
      if(is_dir($dir)){
       if($handle=opendir($dir)){
        while(($file=readdir($handle))!==false){  //注意!此处必须为全不等于
         $file_path=$dir.'/'.$file;
         if($file!='.' && $file!='..'){   //防止读取父级目录
          if(is_dir($file_path)){
          $files[$file]=_scandir($file_path);
          }else{
           $files[]=$file_path;
          }
         }
        }
        closedir($handle);
        return $files;
       }
      }
     }
     $dir='d:/www/test/sa';
     var_dump(_scandir($dir));
     *windows中的文件编码是gbk格式的,打开会显示乱码,问题未解决


    6、把 John 新增到 users 阵列?
     solve 1:$users[]='join';
     solve 2:array_push($user,'join');


    7、在PHP中error_reporting这个函数有什么作用?
    答:error_reporting() 设置 PHP 的报错级别并返回当前级别。

    8、如何修改SESSION的生存时间(1分)
     一:在php.ini 中设置 session.gc_maxlifetime = 1440 //默认时间
     二:代码实现
     $lifeTime = 24 * 3600;  // 保存一天
     session_set_cookie_params($lifeTime); //设置会话 cookie 生命周期参数 ,本函数仅在当前脚本执行过程中有效。 因此,如果要通过函数修改 cookie 参数,需要对每个请求都要 在调用 session_start()  函数之前调用 session_set_cookie_params()  函数。
     session_start();

    9、有一个网页地址, 比如PHP开发资源网主页: http://www.phpres.com/index.html,如何得到它的内容?($1分)
     $concent=file_get_contents($url);

    10、请说明php中传值与传引用的区别。什么时候传值什么时候传引用?(2分)

    答:按值传递:函数范围内对值的任何改变在函数外部都会被忽略

    按引用传递:函数范围内对值的任何改变在函数外部也能反映出这些修改

    优缺点:按值传递时,php必须复制值。特别是对于大型的字符串和对象来说,这将会是一个代价很大的操作。

    按引用传递则不需要复制值,对于性能提高很有好处。

    10、写一个函数,尽可能高效的,从一个标准 url 里取出文件的扩展名
     *** strstr — 查找字符串的首次出现 ,返回该位置之前的字符串
         strrchr — 查找指定字符在字符串中的最后一次出现,返回该位置之后的字符串
      strpos — 查找字符串首次出现的位置 ,返回该位置指针
      strrpos — 查找字符串最后一次出现的位置 ,返回该位置指针

     metho1: $url=" http://www.sina.com.cn/abc/de/fg.php?id=1";
       $info=parse_url($url);//解析出路径path和参数query
       $path=$info['path'];//返回:$path=http://www.sina.com.cn/abc/de/fg.php
       $ext=strrchr($path,'.');//返回:$ext=.php
       $ext=ltrim($ext,'.');//去掉左边的点
       echo $ext;
     metho2: $url=" http://www.sina.com.cn/abc/de/fg.php?id=1";
       $info=parse_url($url);
       $path=$info['path'];
       $file=basename($path);////显示带有文件扩展名的文件名
       $fileinfo=pathinfo($file);
       $ext=$fileinfo['extension'];
       echo $ext;

    11、使用五种以上方式获取一个文件的扩展名
     $file="dir/upload.image.jpg";
     function get_ext1($file){
      $info=pathinfo($file);
      return $info['extension'];
     }
     function get_ext2($file){
      $arr=explode('.',$file);
      return end($arr);//end()获取数组最后一个元素,current()获取当前元素
     }
     function get_ext3($file){
      return substr(strrchr($file,'.'),1);
     }
     function get_ext4($file){
      return substr($file,strrpos($file,'.')+1); 
     }
     function get_ext5($file){
      return pathinfo($file,PATHINFO_EXTENSION); 
     }
     //
     echo get_ext5($file);

    12、MySQL数据库中的字段类型varchar和char的主要区别是什么?那种字段的查找效率要高,为什么?
     varchar是变长,节省存储空间,进行数据提取前必须先查找长度,效率相对低一些。
     char是固定长度,可能浪费资源,但效率高。

    13、请描述出两点以上XHTML和HTML最显著的区别
     (1)XHTML必须强制指定文档类型DocType,HTML不需要
     (2)XHTML所有标签必须闭合,HTML比较随意

    14、写出三种以上MySQL数据库存储引擎的名称(提示:不区分大小写)
     MyISAM、InnoDB、BDB

    15、求两个日期的差数,例如2007-2-5 ~ 2007-3-6 的日期差数
     echo (strtotime($date2)-strtotime($date2))/60/60/24

    16、请写一个函数,实现以下功能:”make_by_id” 转换成 ”MakeById”。
     $str="make_by_id";
     method1:
       $arr=explode('_',$str);
       foreach ($arr as $k=>$v) {
        $arr[$k]=ucfirst($v);
       }
       echo implode($arr);
     method2:
       $str=str_replace('_',' ',$str);
       echo str_replace(' ','',ucwords($str));
    17、js中网页前进和后退的代码
     history.go(1)    history.gp(-1)
    18、&$a 表示引用传递
    19、 php class中static,public,private,protected的区别?
     static 静态,类名可以访问
     public:权限是最大的,可以内部调用,实例调用等。
    protected: 受保护类型,用于本类和继承类调用。
    private: 私有类型,只有在本类中使用。

    20、 HTTP协议中GET、POST和HEAD的区别?
     HEAD: 只请求页面的首部。
     GET: 请求指定的页面信息,并返回实体主体。
     POST: 请求服务器接受所指定的文档作为对所标识的URI的新的从属实体。
     (1)HTTP 定义了与服务器交互的不同方法,最基本的方法是 GET 和 POST。事实上 GET 适用于多数请求,而保留 POST 仅用于更新站点。
     (2)在FORM提交的时候,如果不指定Method,则默认为GET请 求,Form中提交的数据将会附加在url之后,以?分开与url分开。字母数字字符原样发送,但空格转换为“+“号,其它符号转换为%XX,其中XX为 该符号以16进制表示的ASCII(或ISO Latin-1)值。GET请求请提交的数据放置在HTTP请求协议头中,而POST提交的数据则放在实体数据中;
     GET方式提交的数据最多只能有1024字节,而POST则没有此限制。
     (3)GET 这个是浏览器用语向服务器请求最常用的方法。POST这个方法也是用来传送数据的,但是与GET不同的是,使用POST的时候,数据不是附在URI后面传递的,而是要做为独立的行来传递,此时还必须要发送一个Content_length标题,以标明数据长度,随后一个空白行,然后就是实际传送的数据。网页的表单通常是用POST来传送的。

       

  • 相关阅读:
    使用RestTemplate上传文件到远程接口
    设计模式(五)之适配器模式
    设计模式(四)之装饰者模式
    设计模式(三)之模板方法模式
    设计模式(二)之责任链模式
    BUG-jQuery提交表单submit方法-TypeError: e[h] is not a function
    数据类型--集合 set
    数据类型--字典 dic
    字符 str 串需要记住的语法
    数据类型--列表 list
  • 原文地址:https://www.cnblogs.com/yolo-bean/p/7726128.html
Copyright © 2020-2023  润新知