- 用php获取当前时间并打印,打印格式:2018-5-10 09:21:21
//注意这里的5不是05
//区别m和n,d和j
echo date('Y-n-d H:i:s');
- 如何把字符串’08/26/2018’替换成’2018-08-26’
$date = '08/26/2018';
$partern = '/(\d+)\/(\d+)\/(\d+)/';
echo preg_replace($partern,'$3-$1-$2',$date);
- 简述一下表的索引
索引,降低扫描行数,提高表的查询速度,最为重要的优化手段
主要分主键索引 唯一索引 普通索引
- 无限分类的实现原理
无限分类,一个表存放有关系的多级分类,之间有层级关系
实现通过表中的pid字段,然后递归,把查询到的有关系的数据放到一个数组中
有时候加多一个path字段,表示顶级分类到当前分类的分类地图,用作url路径
- 尽可能高效的,从匹配标准url里取出文件的扩展名
$arr = parse_url($url);
$arr1 = pathinfo($arr['[path]']);
echo $arr1['extension'];
- 描述大流量高并发网站的解决方案
- 如何设计或者配置mysql,使其高效使用
mysql服务器主从复制
表分区
表引擎,数据量小尽量选择myisam
索引优化
- 如何防sql注入
表单尽量用post提交
使用http_referer检查来源
使用addslashes对特殊字符进行转义
使用htmlspecialchars进行实体转换
- 如何写一个安全的用户登录系统
表单post提交
限制错误登录次数
使用验证码,防止机器破解(google的,短信类的这些更安全)
同时做前端和后端的表单认证
10.session与cookie的区别,从协议和产生的原因与作用说明
http协议是无状态,无连接的,不能区分用户是否是从同一个网站过来的
而且网站需要保存登录态和一些使用记录
所有用到会话机制session和cookie
session依赖于cookie.
session是保存在服务器中的,cookie是在服务器产生,保存在客户端中的,所以cookie会有延迟
考虑到安全方面,使用session,考虑到减轻服务器性能的,使用cookie.
- 表单中 get与post提交方法的区别?
get请求发送数据是通过url参数传递的,会明文显示,浏览器限制了get请求发送数据的大小是2KB
post请求发送的数据放在request body中,数据大小默认是无限制的
post比get安全,get比post效率高
get可以被缓存,保留历史记录,收藏为书签 post不行
更深入的说:
get发送一个tcp数据包,post发送两个tcp数据包
get.post都是tpc链接,由于http协议的规定和浏览器/服务器的限制,导致他们在应用过程中体现出一些不同.
- 语句include和require的区别是什么?
include和require在如何处理失败上是不同的:
include在引入不存在的文件时会产生一个警告,脚本继续执行
require却会导致一个致命的错误,终止脚本运行
require在php预处理阶段就执行了,而include是在执行到include语句的时候才引入
require是不受条件语句影响的
- 请说明php中传值与传引用的区别。
本质就是zval结构体中的recount_gc和is_ref_gc的影响
传值:函数内对值的改变都不会影响函数外部的
传引用:函数内外的变量的值一起被影响
14.echo(),print(),print_r()的区别?
echo语言结构,无返回值,可以一次输出多个值
print语言结构,有返回值true或者false,只能输出一个值
print_r 递归打印,可以输出数据和对象,当第二个参数是ture是直接返回不输出
语言结构:php语法组成部分的函数
echo print list array eval
- mvc优势
耦合性低
重用性高
可维护性高
有利于软件工程化