-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy path01.php
More file actions
236 lines (192 loc) · 11 KB
/
Copy path01.php
File metadata and controls
236 lines (192 loc) · 11 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
<?php
/*描述一下大流量高并发网站的解决方案
硬件 缓存 数据库 控制大文件下载 防止外部盗链
硬件:使用横向扩展,买多几台服务器,利用负载均衡将压力分但给不同的服务器上
缓存:memcache,Redis,页面静态化
数据库:数据库配置优化、建表优化、查询优化
控制大文件下载,防止外部盗链
如何防SQL注入
不要相信用户提交的数据
判断提交者源头,只能是本站提交 $_SERVER['HTTP_REFERER']
转义用户提交的数据 addslashes
多实用PDO,PDO有预处理
数据库的事务是什么?及特性?
细小的操作都视为一个整体,整体成功则成功,如果任意环节失败则失败,回滚。
原子性:不可切割,要么执行要么不执行
一致性:事务完成时,必须使所有数据保持一致状态
隔离性:事务正确提交之前,不可以把该事务对数据的操作交给其它事务
持久性:事务正确提交之后,其结果将永久保存在数据库
语句include和require的区别是什么?为避免多次包含同一文件,可用(__)语句代替它们
require() :无条件包含
require() :无条件包含,如果文件不存在会报出一个致命错误,脚本不会执行下去
include() : 有条件包含,如果文件不存在会报出一个警告,脚本继续执行下去
require_once() and include_once 检测文件是否重复包含
Git和svn的区别
Git是开源分布式的版本控制系统,SVN是集中式
git有本地仓库,可离线完整大部分操作,每个历史版本都存储完整的文件便于恢复
请说明php中传值与传引用的区别。什么时候传值什么时候传引用?
PHP传值:函数范围内对值的修改,函数外都会被忽略
PHP引用:函数范围内对值的修改,函数范围外也会反映这些修改
优缺点:传值,PHP必须复制值。特别是一些比较大的字符串和对象时比较消耗资源
引用,不需要复制值,对性能提高有好处
mysql_fetch_row() 和mysql_fetch_array之间有什么区别?
row:从结果集中取出一行数组,作为枚举
array: 从结果集中取出一行数组,作为关联数组
什么是面向对象,主要特征是什么?
面向对象主要是以程序设计的一种方式,它利于程序的重用性,使程序结构更加清晰。
封装继承多态
HTTP协议中302、403、500代码含义?
302、地址重定向
304、缓存未过期
403、权限不足
404、访问页面不存在
500、服务器内部错误
如何选择char与varchar
char(n) 固定长度,n的最大值为255,char(3) 存‘a' 最后还是占用3个字节
varchar(n) 不固定长度,n的最大值为65535,varchar(3),存'ab',占用3个字节,需要一个来存放长度
varchar(1000),存'ab',当n超过255时需要占用4个字节,两个来存放长度
如何选择char与varchar
如果是存放的数据是固定的,可以使用char
如果是存放的数据长度是不确定的应该选择varcahr
1、字符串转数组,数组转字符串,字符串截取,字符串替换,---------
str_split explode
join implode
substr mb_substr
str_replace preg_replace
strstr stristr preg_match
2、解释一下PHP类中:protected、public、private、interface、abstract、final、---------
public: 公共的,同一个类子类外部都可以访问
protected: 受保护,在同一个类和子类访问
private: 私人的,只能在同一个类中访问
interface:实现接口关键字
abstract: 抽象类关键字
final: 修饰的类不可以继承,修饰的方法不可以重写
sta tic: 将类中的方法或属性定义成静态的
:: -> 范围操作符,成员访问符
面向对象中接口和抽象类的区别及应用场景
2、什么是数据库索引,主键索引,唯一索引的区别,联合索引,索引的缺点是什么?--------
3、数据库设计时,常遇到的性能瓶颈有哪些,常用的解决方案?
设定网站的用户数量在千万级,但是活跃用户的数量只有1%,如何通过优化数据库提高活跃用户的访问速度?
2、请描述你经常使用的php函数及其主要作用(最少5个)
(4)array_merge () 将多个数组合并成一个数组
(5)array_diff () 比较两个或两个以上数组的差异
(9)array_unique () 删除数组中的重复值
(10)array_push () 将一个或多个元素插入数组的末尾(入栈)
(11)array_pop () 弹出并返回 array 数组的最后一个单元(出栈)
explode() 分割字符串,返回数组
implode() 把数组元素连接成字符串
substr() 取出字符串中的一部分
strops() 查找字符串首次出现的位置
strrev() 反转字符串
11、PHP的垃圾收集机制是怎么样的?
在PHP中,垃圾回收机制是一种动态存储分配方案,它会自动释放程序不需要的内存块,自动回收的过程叫做垃圾收集。
没有任何变量指向这个对象时,会视为垃圾,PHP会将其在内存中销毁。
每个对象都内含一个引用计数器,当有变量链接到这个对象时,计数器会+1,离开或设为null时计数器-1,当对象的引用计数器为0时,会自动释放所占的内存空间
8、echo(),print(),print_r()的区别 打印函数 echo区别
echo,print是PHP语言结构, print_r是函数,语言结构没有返回值,函数可以有返回值(即便没有用)
echo 可以输出一个或多个字符串,用逗号隔开。无返回值
print 仅支持一个参数,并总是返回 1
print_r 显示一个变量的信息,有返回值
var_dump 打印一个或多个表达式的结构信息,包括表达式的类型与值,无返回值
printf 输出格式化字符串,返回输出字符串的长度
33、mysql_fetch_row() 和mysql_fetch_array之间有什么区别? (1分)
row:从结果集中取出一组数组,作为枚举
array:从结果集中取出一组数组,作为关联数组
CSS里margin和padding有什么区别?写出padding在3个参数和四个参数情况下,参数所作
1、上下左右
2、上下、左右
3、上、左右、下
4、上、右、下、左
40、用PHP写出显示客户端IP与服务器IP的代码1分)
$_SERVER['REMOTE_ADDR']
$_SERVER['SERVER_ADDR']
51、在开发项目中,需要上传超过8M的文件,请说明在php.ini需要修改的配置项。(10
upload_max_filesize
file_size_
61、Php是否有安全问题,如果有,请列举说明。
sql注入 令牌 权限 跨站脚本攻击 跨站伪请求
18.简述smarty的工作原理,如何对smarty进行二次开发?
1、smarty会将PHP源文件编译成中间文件
2、如果启用缓存,再根据编译文件生成缓存文件
3、后面都会访问编译文件
21.利用ajax传输数据时,一般默认使用的是什么编码方式?
文件头 接收端和发送端设置utf-8
5、AJAX的优势是什么?--------
ajax异步传输技术,实现了局部刷新,减轻服务器压力,提高用户体验
8、PHP的意思
基于服务端 PHP HTML 生成 网站主页
9、MYSQL取得当前时间的函数是?,格式化日期的函数是--------------
now() date_fromat()
1.请说明表单中 get与post提交方法的区别 get区别 post区别?
1.GET提交数据会附在URL里,明文传输,传参会有大小的限制。
2.而POST是放置在HTTP包里,地址栏不会显示,传参理论上不受限,POST安全性比GET高
5、谈谈你对MVC的认识,介绍几种目前比较流行的MVC框架?(5分)有什么缺点
m(模型) 处理业务和逻辑
v(视图层) 与用户交互,显示数据
c(控制层) 接收用户数据,调度模型与视图
brophp thinkPHP cakePHP Yii
MVC有利于分工合作,容易排错
数据库优化有哪些 innodb和myisam区别
1、数据库配置优化 DBA做的
2、建表优化
a. 设计表时尽量符合数据库三范式
b. 有时候可以适度反范式,以达到空间换取时间效果
d. 尽量给每个字段添加NOT NULL
c. 根据业务需求,选择合适数据类型
e. 根据表的情况,选择合适的表引擎
3、查询优化
不要使用*号查询,只查所需字段
多使用limit,减少显示的条数
根据索引检索数据
减少在数据库运算,多使用预处理
三范式
1、保证每一列是一个原子
2、确保每一列和主键相关
3、确保每一列和主键相关而不是间接相关
微信运行
session与cookie联系
session产生的sessionID是通过cookie存放在客户端的,
当浏览器向服务器发起请求是,服务器会看它的请求头中有没有sessionID,
如果没有sessionID,会通过session_start()创建一个新的sessionid还会产生一个新的
文件来存放session数据,在回应的时候将sessionid写到cookie中,如果cookie中有sessionid,就
会根据它的sessionid读取服务器的session数据
读写分离的作用:
提高查询速度,减轻单台数据库的压力,避免单点故障
子类重写父类的protected方法有什么限制?------------
final修饰的类方法不可被子类重写
5.3以后方法参数个数必须一致
重写时访问级别问题 (只可以等于或者宽松于当前重写方法的访问级别)
什么是 CSRF 攻击 ?XSS 攻击?如何防范?
CSRF,跨站请求伪造,攻击方伪装用户身份发送请求从而窃取信息或者破坏系统。
防范
1.合理规范api请求方式
2.对POST请求加token令牌验证
3.生成一个随机码并存入session,表单中带上这个随机码,提交的时候服务端验证随机码是否相同。
XSS,跨站脚本攻击。
防范
1.不相信任何输入,过滤输入。
2.转义用户提交的数据
Redis、Memecached 这两者有什么区别?--------------------
1.Redis 支持更加丰富的数据存储类型,String、Hash、List、Set 和 Sorted Set。Memcached 仅支持简单的 key-value 结构。
2. Redis 提供了事务的功能,可以保证一系列命令的原子性
3. Redis 支持数据的持久化,可以将内存中的数据保持在磁盘中
Redis 如何实现持久化?
将内存里的数据保存到硬盘中,相当于备份数据库
创建
array_fill(2,3,'dog') 给定的值填成数组 2是键,3是填充的数量,'Dog'为填充内容
拆分
array_chunk()
array_merge()
差集
array_diff()
查找
array_search()
查找替换
array_splice()*/
/*
人生是累的。现在不累以后更累,现在不苦以后更苦。唯累过,方得闲,唯苦过,方知甜
先天下之忧而忧,后天下之乐而乐。
世界观、人生观、价值观
世界观是指人对世界的看法;
人生观是指人对生活的期望、期待自己达成什么成就;
价值观是人对生活中事物价值的衡量,即认为什么是重要的,什么又是不看重的*/