zoukankan      html  css  js  c++  java
  • php面试题-2

    1.检测一个变量是否有设置的函数是否?是否为空的函数是?(2分)

        检测⼀个变量是否有设置的函数是isset()

    检测⼀个变量是是否为空的函数是empty()

    2. echo(),print(),print_r()的区别(3分)

        echo()是php语句 没有返回值 输出一个或多个字符串

        print()是函数 有返回值  打印简单类型的变量(int,string

        print_r()是函数 有返回值 打印复杂的类型的变量的值(数组,对象

    3. 表单中 get与post提交方法的区别?

        ① 传输的数据量不同

     get小,被url长度限制,效率高,安全性差,post可以传输大量数据,

        ② 传输方式不同

            Get是发送请求http协议通过URL参数传递

            Post是实体数据

        ③ 服务器端获取数据方式不同

            $_GET和$_POST

        ④ 用途不同

            Get主要用于页面搜索,post用于数据的增删改

    4. session与cookie的区别?

        ① Cookie存放在客户端 Session存储在服务器端

    ② 安全性cookie差

    ③ cookie有大小限制

    ④ session过大服务器压力会增大

    5. 用PHP打印出前一天的时间格式是2015-8-10 22:21:21

        date_default_timezone_set('PRC');

    echo  date('Y-m-d H:i:s', time()-24*3600);

    echo '<br>';

    echo date('Y-m-d H:i:s', strtotime('-1 day'));

    6. 能够使HTML和PHP分离开使用的模板引擎

        Smarty TagTemplate EasyTemplatePHP dttag Mustache

    7. 使用哪些工具进行版本控制

        Svn git  cvs

    8. 如何实现字符串翻转

        Strrev()函数

    $str = "abcdefg";

    function strrevv($str)
    {
    $len=strlen($str);
    $newstr = '';
    for($i=$len;$i>=0;$i--)
    {
    $newstr .= $str{$i};
    }
    return $newstr;
    }
    $showstr = strrevv($str);
    echo $showstr."<br>";

    9. 有一个网页地址, 比如PHP开发资源网主页: baidu.com, 如何得到它的内容?

            Fopen()

    $readcontents = fopen("baidu.com ", "rb");

       $contents = stream_get_contents($readcontents);

       fclose($readcontents);

       echo $contents;

            File_get_contents()

    10. 在PHP中error_reporting这个函数有什么作用?

        设置报错级别

    11. JS表单弹出对话框函数是?获得输入焦点函数是?

        弹出对话框: alert(),prompt(),confirm() 获得输入焦点 focus()

    12. foo()和 @ foo()之间有什么区别

            @foo() 控制错误输出

    13. GD库是做什么用的?

        php处理图形的扩展库   验证码

    14. 写一个函数,能够遍历一个文件夹下的所有文件和子文件夹

        function my_scandir($dir)  
    {  
      $files = array();  
      if ( $handle = opendir($dir) ) { 
        while ( ($file = readdir($handle)) !== false ) {  
          if ( $file != ".." && $file != "." ) {  
            if ( is_dir($dir . "/" . $file) ) {  
            $files[$file] = scandir($dir . "/" . $file);  
            }else {  
            $files[] = $file;  
            }  
          }  
        }  
        closedir($handle);  
        return $files;  
      }  
    }

    $files=my_scandir('D:wwwmoning');
    print_r($files);

    15. 写出 SQL语句的格式 : 插入 ,更新 ,删除 (4分)
      表名User Name Tel Content Date
      张三 13333663366 大专毕业 2006-10-11
      张三 13612312331 本科毕业 2006-10-15
      张四 021-55665566 中专毕业 2006-10-15
      (a) 有一新记录(小王 13254748547 高中毕业 2007-05-06)请用SQL语句新增至表中
      (b) 请用sql语句把张三的时间更新成为当前系统时间
      (c) 请写出删除名为张四的全部记录

            Mysql_query(“insert into `User`(name,tel,content,date) value(‘小王’, 13254748547,’ 高中毕业’,’ 2007-05-06’ )”)

            Mysql_query(“update `user` set date =’”.time().”’ Where name = ‘张三’”)

            Mysql_query(“delete from `user` where name=’张四’”)

    16. myisam与innodb的区别

        ① Myisam不支持事务 innodb支持

        ② innodb为行级锁 myisam表级锁

        ③ innodb不保存表行数

        ④ myisam适用执行select innodb适用insert update

        ⑤ 物理结构不同 myisam存三个文件,。frm 文件存放表格定义。 数据文件是MYD (MYData) 。 索引文件是MYI (MYIndex)引伸  InnoDB 把数据和索引存放在表空间里面

        ⑥ MyISAM中可以使AUTO_INCREMENT类型字段建立联合索引 InnoDB中必须包含AUTO_INCREMENT类型字段的索引

    17. int 与bigint的区别

        int普通大小的整数 默认10位 bigint大整数 默认20位

    18. int(10)与int(11)的区别

        显示长度不同

    19. varchar与char的区别

            Char 存储定长的类型

            Varchar存储可变长的类型

    20. 数据库设计,用户表与登录表分开的好处

        性能和安全

    21. 分布式怎样解决session共享问题

        使用redis集中管理session

           session复制

                  tomcat的session复制,可以实现session共享  只需搭建tomcat集群即可

           session绑定

                  当用户A第一次访问系统时,tomcat1对其进行服务,那么,下次访问时仍然让tomcat1对其进行服务

    22.  php __autoload机制

        自动加载机制

    23. 三次握手与四次挥手的过程(主要是画图),各个参数的含义

        三次握手

    第一次握手:主机A发送位码为syn=1,随机产生seq number=10001的数据包到服务器,主机B由SYN=1知道,A要求建立联机,此时状态为SYN_SENT;

    第二次握手:主机B收到请求后要确认联机信息,向A发送ack number=(主机A的seq+1),syn=1,ack=1,随机产生seq=20001的包,此时状态由LISTEN变为SYN_RECV;

    第三次握手:主机A收到后检查ack number是否正确,即第一次发送的seq number+1,以及位码ack是否为1,若正确,主机A会再发送ack number=(主机B的seq+1),ack=1,主机B收到后确认seq值与ack=1则连接建立成功,双方状态ESTABLISHED。

           

       

    四次挥手:

    客户端向服务器发送FIN,请求关闭,进入FIN_WAIT_1状态。

    服务端接受到FIN报文,然后需要告诉客户端,我已经知道请求,但还没有准备好,你可以继续等我消息,所以服务端发送ACK。然后可以进入CLOSE_WAIT状态

    客户端接收到服务端数据,不做任何回应,进入FIN_WAIT_2状态。

    服务端确认数据发送完成之后,发送FIN报文,告诉客户端可以关闭连接了,然后进入LAST_ACK状态。

    客户端接收到FIN报文之后,进入TIME_WAIT状态,发送ACK确认报文,如果2msl时间没有反应则关闭连接。否则进行重传。

    服务端在接收到ACK之后,关闭连接。

    24. http与https的区别,https怎样保准安全(结合ssl)

       

    1、https协议需要到ca申请证书,一般免费证书较少,因而需要一定费用。

    2、http是超文本传输协议,信息是明文传输,https则是具有安全性的ssl加密传输协议。

    3、http和https使用的是完全不同的连接方式,用的端口也不一样,前者是80,后者是443。

    4、http的连接很简单,是无状态的;HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议,比http协议安全。

    25. 写出一个排序算法

        冒泡法:

            function bubbleSort($str){
        $_count=count($str);
        for($i=0;$i<$_count;$i++){
            for($j=$i+1;$j<$_count;$j++){
                if($str[$j]>$str[$i]){
                    $tem=$str[$j];
                    $str[$j]=$str[$i];
                    $str[$i]=$tem;
                }
            }
        }
        return $str;
    }
    $str=array(8,5,4,3,32,2.4,54,59,6,7,);
    print_r($str);
    print_r(bubbleSort($str));
     
        快速排序法:
    function qkSort($str){
        $_count=count($str);
        if($_count<2) return $str;
        $standard=$str[0];
        $_left=$_right=array();
        for($i=1;$i<$_count;$i++){
            if($str[$i]>$standard){
                $_left[]=$str[$i];
            }else{
                $_right[]=$str[$i];
            }
        }
        $_left=qkSort($_left);
        $_right=qkSort($_right);
        return array_merge($_left,array($standard),$_right);
    }
    $str=array(8,5,4,3,32,2.4,54,59,6,7,);
    print_r($str);
    print_r(qkSort($str));
     
    26. 二分查找的思想
            1.只适用于一组有序数,杂乱无序的数是不能使用二分法查找的
            2.思想:根据你查找的数来判断查找前半段还是后半段
     
    27. linux常用命令
            ls -a 列出目录所有文件,包含以.开始的隐藏文件
     
             ls -A 列出除.及..的其它文件
     
             ls -r 反序排列
     
             ls -t 以文件修改时间排序
     
             ls -S 以文件大小排序
     
             ls -h 以易读大小显示
     
             ls -l 除了文件名之外,还将文件的权限、所有者、文件大小等信息详细列出来
            cd [目录名]。说明:切换当前目录至dirName
            pwd 查看当前工作目录路径
            mkdir t 创建t文件夹
            rm  删除一个目录中的一个或者多个文件或目录
            rmdir 删除空目录
            mv 移动文件
            cp 复制文件
            find 查找文件
            chmod 改变权限
            tar 压缩
            df 显示磁盘空间使用情况
            du 显示文件占用磁盘空情况
            free 显示系统内存使用情况
  • 相关阅读:
    【链表】Bzoj1098[POI2007]办公楼biu
    【构造】Bzoj1432[ZJOI2009]Function
    【Dp】Bzoj1296 [SCOI2009] 粉刷匠
    【二分贪心】Bzoj3969 [WF2013] Low Power
    【递推】Bzoj3612[Heoi2014]平衡
    HDU-3718 Similarity
    HDU-3435 A new Graph Game
    HDU-3488 Tour
    HDU-1853 Cyclic Tour
    HDU-1533 Going Home
  • 原文地址:https://www.cnblogs.com/lx0715/p/9956104.html
Copyright © 2011-2022 走看看