Skip to content

PHP试题答案 #3

@CaelumTian

Description

@CaelumTian

PHP试题答案

一丶基础部分

1.用PHP打印出前一天的时间格式

<?php
    echo date('Y-m-d H:i:s', strtotime('-1day'))
?>

2.编程实现实现字符串翻转

使用strrev函数即可

3.用pHp写出显示客户端Ip与服务器Ip的代码

$_SERVER["REMOTE_ADDR"]
$_SERVER["SERVER_ADDR"]

4.写出验证邮箱规则的正则表达式

preg_match("/^[0-9a-zA-Z]+@(([0-9a-zA-Z]+)[.])+[a-z]{2,4}$/i",$email );

5.简述ob_start 与 ob_end_flush() 有什么作用,经常用来做什么

ob_start ob_get_flush ob_end_flush()这些函数是缓存技术的一种,是减轻服务器压力的,直到项目开发用到才知道混淆了和缓存的概念,这些像ob_start ob_get_flush这些函数都是为了在编程中字符串输出到客户端上去为了延长时间而用到的技术,延迟输出(字符串先发送到缓冲区需要时在输出到浏览器),是一种输出技巧。最常见的应用是静态化技术(可以实现静态缓存):

6.略(网上有详细内容)
7.简述下列HTTP状态码含义:200, 301, 404, 502, 503

503——服务器过载或暂停维修
200——请求成功
301——删除请求数据
404-无法提供数据
502——服务器暂时不可用,有时是为了防止发生系统过载
8.在一个函数(该函数没有return语句)里面如何去处理全局变量, 并且改变他的值
提示:可以采用&引用或者global

mysql部分

1.mysql中myisam与innodb的区别

InnoDB支持事物,而MyISAM不支持事物
InnoDB支持行级锁,而MyISAM支持表级锁
InnoDB支持MVCC, 而MyISAM不支持
InnoDB支持外键,而MyISAM不支持
InnoDB不支持全文索引,而MyISAM支持。

2.mysql中varchar与char的区别以及varchar(50)中的50代表的涵义

char的长度是固定的,而varchar的长度是可以变化的,50个字节

3.HAVNG 子句 和 WHERE的异同点,至少写出3点

语法上:where 用表中列名,having用select结果别名
影响结果范围:where从表读出数据的行数,having返回客户端的行数
索引:where 可以使用索引,having不能使用索引,只能在临时结果集操作
where后面不能使用聚集函数,having是专门使用聚集函数的。

4.优化后

SELECT ID, WAYBILL_NO, EXP_TYPE, PKG_QTY,EXPRESS_CONTENT_CODE, EFFECTIVE_TYPE_CODE
FROM T_EXP_OP
WHERE
           AUX_OP_CODENOT IN (‘NEW’, ‘UPDATE’, ‘DELETE’)
           AND(OP_CODE NOT IN (176, 162, 171, 131, 136, 191, 121, 181,111)
           ANDEXP_TYPE NOT IN(‘10’, ‘20’, ‘30’))
LIMIT 10;  

linux部分

1.哪个命令可以展示指定路径的目录内容

ls

2.请写出删除“a.a”文件的命令

rm -f a.a

3.请写出删除“aaa”目录及目录下所有文件的命令

rm -rf /aaa/*

4.请写出将文件/etc/a复制到/var/a的命令

cp -p /etc/a /var/a

5.请写出在Debian/Ubuntu下更新软件源的命令

sudo apt-get update

6.将程序a的权限改为-rwxrwxrwx,即对任意用户组的任意用户都拥有读、写、执行权限

chmod 777 a

7.将源码文件a.c用gcc编译为a

gcc a.c -o a

二丶提高部分

1.用 PHP 实现一个双向队列, 仅需要写出结构即可 (13分)

class DEQueue {
    //存储
    protected $_storage = array();

    //入头
    public function unshift($element)
    {
        return array_unshift($this->_storage, $element);
    }

    //入尾
    public function push($element)
    {
        return array_push($this->_storage, $element);
    }

    //出尾
    public function pop()
    {
        return array_pop($this->_storage);
    }

    //出头
    public function shift()
    {
        return array_shift($this->_storage);
    }

    //长度
    public function length()
    {
        return count($this->_storage);
    }
}

2.单例类

    private static $_instance = null;
    //私有构造函数,防止外界实例化对象
    private function __construct() {
    }
    //私有克隆函数,防止外办克隆对象
    private function __clone() {
    }
    //静态方法,单例统一访问入口
    static public function getInstance() {
        if (is_null ( self::$_instance ) || isset ( self::$_instance )) {
            self::$_instance = new self ();
        }
        return self::$_instance;
    }

3.略(请学习使用pdo)

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions