14日早上,希塔电商,绿地中心
14日下午,上海添庆网络科技股份有限公司,广州市海珠区宝岗大道268号中新大厦2316室
15日下午,广州市三川田文化科技股份有限公司,广州市萝岗区科学大道中99号科汇金谷4街5号C2栋3楼
衣联网面试题答案:
笔试答案
1、状态200,301,400,501,502的意思是
200:请求已成功,请求所希望的响应头或数据体将随此响应返回;
301:永久重定向;
302:临时重定向;
400:当前请求无法被服务器理解;
404:请求所希望得到的资源未被在服务器上发现
502:网关错误
503:临时的服务器出错;
2、PHP有哪几个预定义的超全局变量?分别代表什么含义?
$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
单例模式,工厂模式
搜索引擎
负载集群,读写分离,
mb_convert_case($str,MB_CASE_UPPER,$encoding);
mb_strtolower() 使字符串小写;
mb_strtoupper() 使字符串大写
strtolower() 将字符串转换为小写;
strtoupper() 将字符串转换为大写;
ucfirst() 将字符串的首字母转换为大写;
ucwords() 将字符串中每个单词的首字母转换为大写
答:获取当前时间的函数为: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, "."));
$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优化:
MyISAM不支持事务,innodb则没有限制
11、怎么获取页面的内容?
答:fopen()和file_get_contents()可用于获取页面信息;
区别在于:
fopen()打开网页之后,返回的不是字符串,不能直接输出,还需要用到fgets()这个函数来获取字符串,fgets()函数是从文件指针中读取一。由此可知,fopen()返回的只是一个资源,如果打开失败,函数返回false;
file_get_contents()打开URL,返回的是字符串,可以直接输出;相比来说,后者更简单快捷;
但是如果要读取较大的资源,则是用fopen()比较合适;
1、首先创建职员信息表
2、然后创建UserController控制器用于对职员的管理
使用ajax来实现email的功能
2、创建EmailController.class.php
3、创建控制器EmailController
添加add方法载入模板
添加addOk方法用来发送邮件,并返回信息;
定义index方法显示邮件列表
4、用关联模型读取发送人信息
表与表之间的关联关系BELONGS_TO
主表email邮件表
从表admin管理员表
在还没登陆的情况下使用cookie来保存信息:
当用户登录了就使用MySQL来保存信息
MySQL的表保存:
实现购物车,
1、rbac权限设计思路;
一共设计三个表:用户表,权限表,角色表;
用户表里有字段对应角色ID,角色表里面对应权限表的id;大概思路是:用户表里的某个用户对应着,角色表里的某个角色,这个角色可能是经理也可能是主管或者是普通员工,
这些角色不止对应一个人,这些角色分配了不同的权限,每一项权限是一个权限id。这个权限id对应着权限表内的某一项权限,这样就能够达到,分配给用户表内的某个用户一些权限;
有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
答:memcached是memcache的升级版,功能差不多,但是memcache是原生的,但不支持二进制协议;memcached实现了更多的其他协议 就是但不支持长链接
Innodb支持事务,主要应用是用在事务的处理
MyISAM不支持事务,主要用在select,insert,高负载
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步