“PHP学习网” 公众号会天天分享一些面试题,正在找工做的小伙伴们能够来看看哦。
<form action=”action.php” method=”post” enctype=”multipart/form-data”> <input type=”file” name=”pic” /> <input type=”submit” value=”提交” /> </form> Action.php: $name=$_FILES[‘pic’][‘name’]; $type=$_FILES[‘pic’][‘type’]; $tmp=$_FILES[‘pic’][‘tmp_name’]; $error=$_FILES[‘pic’][‘error’]; $size=$_FILES[‘pic’][‘size’]; $maxsize=1024*1024*5; If($size>$maxsize){ Exit(‘图片大小超出’); } $name_arr=array(‘gif’,’png’,’jpg’,’jpeg’); $ext=pathinfo($name,PATHINFO_EXTENSION); If(!in_array($ext,$name_arr)){ Exit(‘图片类型不正确’); }
一、 数据库设计方面,设计结构良好的数据库,容许部分数据冗余。
选取最适用的字段属性,尽量把字段设置为NOT NULL,这样在查询的时候,数据库不用去比较NULL值。php
二、系统架构设计方面,表散列,把海量数据散列到几个不一样的表里面,集群,数据库查询和写入分开。mysql
三、写高效sql语句,以提升效率。
使用链接(join)来代替子查询
使用联合(union)来代替手动建立的临时表面试
四、所得皆必须,只从数据库取必须的数据。redis
五、必要的时候用不一样的存储引擎,好比Innodb能够减小死锁,HEAP能够提升一个数量级的查询速度。sql
六、使用事务数据库
七、使用外键数组
八、使用索引缓存
一、过滤掉一些常见的数据库操做关键字:select,insert,update,delete,and,*等
或者经过系统函数:addslashes(须要被过滤的内容)来进行过滤。安全
二、在PHP配置文件中
Register_globals=off;设置为关闭状态 //做用将注册全局变量关闭。
好比:接收POST表单的值使用$_POST['user'],若是将register_globals=on;直接使用$user能够接收表单的值。服务器
三、SQL语句书写的时候尽可能不要省略小引号(tab键上面那个)和单引号
四、提升数据库命名技巧,对于一些重要的字段根据程序的特色命名,取不易被猜到的
五、对于经常使用的方法加以封装,避免直接暴漏SQL语句
六、开启PHP安全模式 Safe_mode=on;
七、打开magic_quotes_gpc来防止SQL注入
Magic_quotes_gpc=off;默认是关闭的,它打开后将自动把用户提交的sql语句的查询进行转换,把'转为',这对防止sql注入有重大做用。
所以开启:magic_quotes_gpc=on;
八、控制错误信息
关闭错误提示信息,将错误信息写到系统日志。
九、使用mysqli或pdo预处理。
普通索引、主键索引、惟一索引
并不是全部的数据库都以相同的方式使用索引,做为通用规则,只有当常常查询列中的数据时才须要在表上建立索引。
数组的下标最好是数字类型的,数字类型的处理速度快。
++i效率比i++的效率更高,由于++i少了一个返回i的过程。
Magic_quotes_gpc()是php配置文件中的,若是设置为on则会自动POST,GET,COOKIE中的字符串进行转义,在'以前加\
Magic_quotes_runtime()是php中的函数,若是参数为true则会数据库中取出来的单引号、双引号、反斜线自动加上反斜杠进行转义。
Memcache是一种缓存技术,在必定的时间内将动态网页通过解析以后保存到文件,下次访问时动态网页就直接调用这个文件,而没必要在从新访问数据库。使用memcache作缓存的好处是:提升网站的访问速度,减轻高并发时服务器的压力。
Memcache的优势:稳定、配置简单、多机分布式存储、速度快
最后各位能够扫下方二维码关注我公众号,目前我正在更新基础面试题,以后会更新中高级、redis、liunx面试题