hhh

14日早上,希塔电商,绿地中心

14日下午,上海添庆网络科技股份有限公司,广州市海珠区宝岗大道268号中新大厦2316 

 

 

15日下午,广州市三川田文化科技股份有限公司,广州市萝岗区科学大道中99号科汇金谷4街5号C2栋3楼

 

衣联网面试题答案:

笔试答案

1、状态200,301,400,501,502的意思是

200:请求已成功,请求所希望的响应头或数据体将随此响应返回;

301:永久重定向;

302:临时重定向;

400:当前请求无法被服务器理解;

404:请求所希望得到的资源未被在服务器上发现

502网关错误

503临时的服务器出错;

 

2PHP有哪几个预定义的超全局变量?分别代表什么含义?

$GLOBALS    :引用全局作用域中克用的全部变量;

$_SERVER    :保存关于报头、路径和脚本位置的信息

$_REQUEST    :用于手机HTML表单提交的数据

$_POST        :接受post传递过来的数据,也常用于传递变量

$_GET        :接收get传递过来的数据,

$_SESSION    :接收session传递过来的数据

$_COOKIE    :传递session传递过来的数据

$_FILES        :用于接收各种上传文件的信息

$_ENV        :是一个包含服务器端环境变量的数组

 

3、PHP5中的魔术方法有哪些,请举例说明各自的用法?

__construct()    :

__destuct()    :

__call()        :调用对象不存在方法时被调用

__get()        :调用对象不存在的属性时被调用

__set()        :设置对象不存在的属性是被调用;

__toString()    :打印一个对象时呗调用

__clone        :克隆对象时呗调用

__sleep()        :serialize之前被调用

__isset()        :检测对象是否存在属性的适合被调用;

__unset        :unset一个对象属性时呗调用;

 

4、描述一下session的原理

session是会话技术的一种,session将一个表示通过cookie写到客户端,再在服务器以此表示为依据存储一个数据再$_SESSION中;

 

5、spl_autoload_register和__autoload分别有什么用他?他们有什么区别?

答:__autoload():尝试加载未定义的类;可以加载尚未定义的类;

    spl_autoload_register:注册__autoload()函数,将函数注册到SPL __autoload函数栈中。如果该栈中的函数尚未激活,则激活它们。

 

6、简单描述一下linux的根目录下的各个基础目录的作用;

答:/bin:系统指令目录

    /home:系统用户的家

    /media:系统多媒体目录

    /mnt:系统挂载目录

    /sbin:超级管理员的指令目录

    /var:经常变化的目录,如网页、数据库

    /etc:系统配置文件目录

    /opt:第三方程序目录

    /root:超级管理员的家

    /usr:系统程序目录

 

数据库

7、数据库的关系运算有哪些?

关系运算包括:投影,选择,连接除;

其中投影对应select语句,选择对应where子句,连接对应join语句,除没有直接对应的语句

 

8、创建具有五个字段的表,写下脚本

create table test_1(

id int(10) NOT NULL primary key auto_increment,

user_name varchar(40) NOT NULL,

password varchar(40) NOT NULL,

sex varchar(10) NOT NULL,

email varchar(255) NOT NULL

)engine=myisam default charset=utf8;

问答题

 

答:全文检索是指计算机索引程序通过扫描文章中的每一个词,对每一个词建立一个索引,致命该词在文章中出现的次数和位置

 

答:大数据是对海量数据的称呼,具有数据量庞大,快速的数据流转,多样的数据类型和价值必读低四大特征;现代企业可以对用户的海量数据的分析,可以获得用户的生活习惯,从而可以采用更具有针对性的营销手段;

大数据的解决方案:

因为hadoop的分块大小默认是64M,大数据可以充分的利用网络IO,否则hadoop的性能不能达到峰值。所以大家的思想就是hadoop在处理较大规模的数据时性能才是最理想的。 

 

在浏览器端实现页面缓存

 

面试问题

表的效率使用的是慢查询来检测,sql语句的效率是用explain来检测

 

索引怎么建:

可以在创建表的适合创建主键索引

    在修改表结构的适合创建

 

范式,ER图;

explain

 

rbac

单例模式,工厂模式

 

搜索引擎

 

负载集群,读写分离,

 

希塔电商答案

  1. mb_convert_case($str,MB_CASE_UPPER,$encoding);

    mb_strtolower()    使字符串小写;

    mb_strtoupper()    使字符串大写

    strtolower()        将字符串转换为小写;

    strtoupper()        将字符串转换为大写;

    ucfirst()        将字符串的首字母转换为大写;

    ucwords()        将字符串中每个单词的首字母转换为大写

 

  1. 答:获取当前时间的函数为:now(),,sql语句为:select now();

            格式化日期:DATE_FORMAT(date,format)…

                        data为时间字段

                        format:时间格式

    select data_format(now(),'%y-%m-%d %H-%I-%S' );

 

3、null==false 是对还是错的,为什么?

是对的,因为null和false都是以值为0存储的;

 

4、<?php echo "hello"?>无法输出,会是什么问题?

答,因为php文件必须由服务器来打开,所以,可能没有将文件正确的放置在运行着php系统的服务器上的指定目录。

 

答:首先搞清楚是大并发问题还是大流量问题

    大并发:可以使用服务分层架构实现,主要使用的技术是负载均衡器

    大流量:(a)在浏览器端对数据进行缓存(页面静态化,要用到ob缓存)

         (b)在服务器端对数据实现压缩;

    (c)减少http请求;将多个js或者css文件合并成一个文件之后再传递,对于http请求来说,每一次的请求既有响应头也有响应主题,将多个请求合并之后,至少可以减少请求头信息的传递

(d)使用cdn技术。离用户访问最近的同一运营商下的服务器提供的静态资源。本质上没有减少流量,只是把流量转移到别的服务器上,但是可以加速网站的访问。

 

(1)     explode函数:

$path = "index.php";

$explode = explode(".", $path);

var_dump($explode[count($explode)-1]);

(2)    strrchr函数:

$path = "index.php";

var_dump(strrchr($path, "."));

  1. $path = "index.php";

    $pathinfo = pathinfo($path);

    var_dump($pathinfo['extension']);

 

答:echo是php语句,print和print_r是函数,语句没有返回值,函数可以有返回值;

    print()只能打印出简单类型的变量值(如int,string);

    print_r()可以打印出复杂类型变量的值(如数组,对象);

 

9、联合查询:

select * from student cross join class where stu.c_id=class.id;

这句话的意思:查询学生所在班级的id等于班级表中的班级id

 

10、mysql的优化;

(1)开启查询缓存,第一次查询之后,缓存在缓存文件中,第二次查询就可以直接调用结果了;

(2)使用explain(desc)关键字来检测sql语句,可以根据结果对sql语句进行优化;

使用慢查询可以查看哪些sql语句是效率低的,再用explain和profile来具体检测

(3)在只要1行数据的时候使用limit 1进行限制;

(4)为需要经常搜索的字段建立索引;(索引用来快速地寻找那些具有特定值的记录。)

(5)尽量使用ENUM类型而不是varchar;

(6)能使用固定长度就用固定长度,可以提高性能

(7)正确选择存储引擎

 

mysql优化:

  1. MyISAM不支持事务,innodb则没有限制

 

11、怎么获取页面的内容?

答:fopen()和file_get_contents()可用于获取页面信息;

区别在于:

fopen()打开网页之后,返回的不是字符串,不能直接输出,还需要用到fgets()这个函数来获取字符串,fgets()函数是从文件指针中读取一。由此可知,fopen()返回的只是一个资源,如果打开失败,函数返回false;

file_get_contents()打开URL,返回的是字符串,可以直接输出;相比来说,后者更简单快捷;

但是如果要读取较大的资源,则是用fopen()比较合适;

简历项目

oa系统中的员工管理系统

1、首先创建职员信息表

2、然后创建UserController控制器用于对职员的管理

 

OA系统中的站内信实现

使用ajax来实现email的功能

2、创建EmailController.class.php

3、创建控制器EmailController

    添加add方法载入模板

    添加addOk方法用来发送邮件,并返回信息;

定义index方法显示邮件列表

4、用关联模型读取发送人信息

表与表之间的关联关系BELONGS_TO

主表email邮件表

从表admin管理员表

 

购物车实现

在还没登陆的情况下使用cookie来保存信息:

  1.  

    当用户登录了就使用MySQL来保存信息

    MySQL的表保存:

  2.  

    实现购物车,

     

    扩展

    1、rbac权限设计思路;

    一共设计三个表:用户表,权限表,角色表;

    用户表里有字段对应角色ID,角色表里面对应权限表的id;大概思路是:用户表里的某个用户对应着,角色表里的某个角色,这个角色可能是经理也可能是主管或者是普通员工,

    这些角色不止对应一个人,这些角色分配了不同的权限,每一项权限是一个权限id。这个权限id对应着权限表内的某一项权限,这样就能够达到,分配给用户表内的某个用户一些权限;

     

    1. 有URL,type,callback,data

     

    使用jsonp协议解决跨域请求问题

    getjsonp();

     

    (1)VI编辑器的基本指令:

    yy :复制当前行

    p :粘贴

    dd :删除当前行

    u :撤销(相当于Ctrl+Z)

    输入模式:

    Esc:退出到命令模式

    末行模式:

    :q :退出功能

    :w :保存功能

    :wq :保存并退出

    :q! :强制退出

    :w! :强制保存

    :wq! :强制保存退出

    :set nu :显示行号

    /string :搜索并高亮显示关键词

    :noh :取消高亮显示

    (2)软件的安装和卸载

        a)使用rpm查询软件,使用grep 关键词 来缩小范围

    rpm –e 卸载软件的名称

        b)安装

            1.解压压缩包(.tar.gz)

                解压指令:-zxf     -v解压时显示解压进度;

            2.使用configure来设置配置信息(安装路径等);

         ./configure --prefix=/usr/local/memcached --with-libevent=/usr/local/libevent && make && make install        

            指定操作,解压至/usr/local/memcached 并执行操作将libevent解压至/usr/local/libevent 在编译、执行

    3.make指令用来编译源码,生成可执行文件;

            4.make install指令对编译后的文件进行安装

     

    (3)使用FlashFXPV3.8连接linux

     

    1. 答:memcached是memcache的升级版,功能差不多,但是memcache是原生的,但不支持二进制协议;memcached实现了更多的其他协议 就是但不支持长链接

     

      Innodb支持事务,主要应用是用在事务的处理

      MyISAM不支持事务,主要用在select,insert,高负载

posted @ 2016-04-28 00:57  尼农小道  阅读(545)  评论(1编辑  收藏  举报