PHP 面试题汇总(四)

老牛浏览 254评论 0发表于
  1. 禁用 COOKIE 后 SEESION 还能用吗?
    不能

  2. 抓取远程图片到本地,你会用什么函数?
    fsockopen

  3. 你觉得在 PV 10W 的时候,同等配置下,Linux 比 Win 快多少?
    不做优化的情况下一样

  4. 简述 POST 和 GET 传输的最大容量分别是多少?
    2MB,1024B

  5. 用最少的代码写一个求 3 值最大值的函数

    php
    function($a,$b,$c)
    {
    return $a > $b ? ($a > $c ? $a : $c) : ($b > $c ? $b : $c );
    }
  6. 请简述数据库设计的范式及应用。
    一般第 3 范式就足以,用于表结构的优化,这样做既可以避免应用程序过于复杂同时也避免了 SQL 语句过于庞大所造成系统效率低下。

    • 第一范式:每个属性不可再分

    • 第二范式:每一行都是独一无二的,主键

    • 第三范式:无数据冗余

  7. 一个表中的 ID 有多个记录,把所有这个 ID 的记录查出来,并显示共有多少条记录数,用 SQL 语句及视图、存储过程分别实现。

    sql
    存储过程:
      DELIMITER //
      create procedure proc_countNum(in columnId int,out rowsNo int)
      begin
      select count(*) into rowsNo from member where member_id=columnId;
      end
      call proc_countNum(1,@no);
      select @no;
    视图:
      create view v_countNum as select member_id,count(*) as countNum from member group by member_id
      select countNum from v_countNum where member_id=1
  8. 请简述项目中优化 SQL 语句执行效率的方法,从哪些方面,SQL 语句性能如何分析?
    SQL 优化影响不大,不如直接加索引。

  9. 写一个函数,能够遍历一个文件夹下的所有文件和子文件夹。(目录操作)

    php
    /*
    * @param1 string $dir 文件路径
    * @param2 int $level  目录层级
    * */
    function myScanDir($dir,$level=0){
    // 如果不是目录则返回
    if (!is_dir($dir)) return false;
    // 打开目录
    $o = opendir($dir);
    // 遍历当前目录
    while($filename = readdir($o)){
        // 如果是 . 或 .. ,输出后跳出
        if($filename == '.' || $filename == '..'){
            echo str_repeat('  ',$level) . $filename . '<br>';
            continue;
        }
        // 判断是目录还是文件
        if(is_dir($dir . '/' . $filename)){
            echo str_repeat('  ',$level) . $filename . '<br>';
            // 递归调用遍历子目录,目录层级 +1
            myScanDir($dir . '/' . $filename,$level + 1);
        }else{
            echo str_repeat('  ',$level) . $filename . '<br>';
        }
    }
    return true;
    }
    myScanDir('./',0);
  10. 在页面中引用 CSS 有几种方式?

    • 引用外部 CSS 文件

    • 内部定义 Style 样式

    • 内联样式

  11. PHP 支持多继承吗?
    不可以。PHP 类只能继承一个父类,并用关键字「extends」标识。

  12. 请问 GET 和 POST 方法有什么区别?
    我们在网页上填写的表单信息都可以通过这两个方法将数据传递到服务器上,当我们使用 GET 方法时,所有的信息都会出现在 URL 地址中,并且使用 GET 方法最多只能传递 1024 个字符,所以如果在传输量小或者安全性不那么重要的情况下可以使用 GET 方法。

  13. PHP 中获取图像尺寸大小的方法是什么?
    getimagesize() 获取图片的尺寸
    Imagesx () 获取图片的宽度
    Imagesy () 获取图片的高度

  14. PHP 中的 PEAR 是什么?
    PEAR 也就是为 PHP 扩展与应用库(PHP Extension and Application Repository),它是一个 PHP 扩展及应用的一个代码仓库。

  15. 如何用 PHP 和 MySQL 上传视频?
    我们可以在数据库中存放视频的地址,而不需要将真正的视频数据存在数据库中。可以将视频数据存放在服务器的指定文件夹下,上传的默认大小是 2MB,但是我们也可以在 php.ini 文件中修改 max_file_size 选项来改变。

  16. PHP 中的错误类型有哪些?
    PHP 中遇到的错误类型大致有 3 类:

    • 提示:这都是一些非常正常的信息,而非重大的错误,有些甚至不会展示给用户。比如访问不存在的变量。

    • 警告:这是有点严重的错误,将会把警告信息展示给用户,但不会影响代码的输出,比如包含一些不存在的文件。

    • 错误:这是真正的严重错误,比如访问不存在的PHP类。

  17. 如何在 PHP 中定义常量?
    PHP 中使用 Define() 来定义常量。

    php
    define ("Newconstant", 30);
  18. 如何不使用 submit 按钮来提交表单?
    如果我们不想用 submit 按钮来提交表单,我们也可以用超链接来提交,我们可以这样写代码:

    html
    <a href="javascript: document.myform.submit();">Submit Me</a>
点赞
收藏
暂无评论,快来发表评论吧~
私信
老牛@ilaoniu
老牛,俗称哞哞。单纯的九零后理工小青年。喜欢折腾,爱玩,爱音乐,爱游戏,爱电影,爱旅游...
最后活跃于