1.POST和GET这两种提交方式有什么区别?
HTPT对于客户端与服务器的交互定义了不同的方式,最基本的方法有四种:PUT、DELETE、POST、GET,对应着对网络上某个资源的增、删、改、查。因此,GET一般用于获取、查询资源,而POST一般用于更新资源信息。
- 使用目的:GET 是从服务器上获取数据;POST 是向服务器传送数据
- 可见性:GET 请求参数是作为一个键值对的序列附加到URL上的;POST 则是把提交的数据放置在是HTTP包的包体中
- 安全性:GET 由于把参数添加到了URL上,因此是不安全的;而POST 则比较安全
- 数据大小:GET 一般传输数据大小不超过2k-4k(根据浏览器不同,限制不一样,但相差不大);POST 请求传输数据的大小根据 php.ini 配置文件设定。
2.什么是AJAX?它的优势是什么?
AJAX(Asynchronous Javascript AND XML)的全称是异步的JavaScript和XML,可以实现局部刷新,减轻了服务器的压力,也提高了用户体验。
3.什么是MVC框架?它的优势是什么?
MVC(Model View Controller)是一种软件设计典范,用一种业务逻辑、数据、界面显示分离的方法组织代码,将业务逻辑聚集到一个部件里面,在改进和个性化定制界面及用户交互的同时,不需要重新编写业务逻辑。把软件系统分为三个基本部分:模型(Model)、视图(View)和控制器(Controller)。
- 模型(Model):用于封装与应用程序的业务逻辑相关的数据以及对数据的处理方法。
- 视图(View):界面设计人员进行图形界面设计。能够实现数据有目的的显示。
- 控制器(Controller):负责转发请求,对请求进行处理。起到不同层面间的组织作用,用于控制应用程序的流程。
优点是:可以实现代码的重用性,避免产生代码冗余;M和V的实现代码分离,从而使同一个程序可以使用不同的表现形式
4.SESSION与COOKIE的区别?
由于HTTP协议是无状态的协议,所以服务端需要记录用户的状态时,就需要用某种机制来识具体的用户,这个机制就是Session。 而在客户端,就需要Cookie,每次HTTP请求的时候,客户端都会发送相应的Cookie信息到服务端。
实际上大多数的应用都是用 Cookie 来实现Session跟踪的,第一次创建Session的时候,服务端会在HTTP协议中告诉客户端,需要在 Cookie 里面记录一个Session ID,以后每次请求把这个会话ID发送到服务器,我就知道你是谁了。
Session 因为 Session id 的存在,通常要借助 Sookie 实现,但这并非必要,只能说是通用性较好的一种实现方案。 如果客户端的浏览器禁用了Cookie,一般情况下,会使用一种叫做URL重写的技术来进行会话跟踪,即每次HTTP交互,URL后面都会被附加上一个诸如 sid=xxxxx 这样的参数,服务端据此来识别用户。
总结一下:
Session是在服务端保存的一个数据结构,用来跟踪用户的状态,这个数据可以保存在集群、数据库、文件中;
Cookie是客户端保存用户信息的一种机制,用来记录用户的一些信息,也是实现Session的一种方式。
- 存储位置:Session存储于服务器,Cookie存储于浏览器
- 安全性:session安全性比cookie高
- Session为‘会话服务’,在使用时需要开启服务(session_start()),Cookie不需要开启,可以直接用
- Session通常借助Cookie来实现。
5.PHP常用的数组、字符串和数据库操作函数有那些?
1.常用数组函数
in_array( ) 判断元素是否在数组中 count( ) 返回数组中元素的数目 array_merge( ) 将多个数组合并成一个数组 array_diff( ) 比较两个或两个以上数组的差异 array_intersect( ) 获取两个或两个数组以上的交集 array_keys( ) 获取数组的key列表 array_values( ) 获取数组的值列表 array_unique( ) 删除数组中的重复值 array_push( ) 将一个或多个元素插入数组的末尾(入栈) array_pop( ) 弹出并返回 array 数组的最后一个单元(出栈) array_walk( ) 使用用户自定义函数对数组中的每个元素做回调处理
2.常用字符串函数
trim( ) 移除字符串两侧的空白字符和其他字符 strlen( ) 获取字符串的长度 mb_strlen( ) 获取字符串长度(可指定字符编码,对中文字符串计算长度) substr() 返回字符串的一部分 str_replace( ) 子字符串替换 str_repeat ( ) 重复一个字符串 is_string( ) 检测变量是否是字符串 str_shuffle ( ) 随机打乱一个字符串 sprintf( ) 返回根据格式化字符串生成的字符串(通常用于获取分表后的数据表名) strstr( ) 查找字符串的首次出现 addslashes 使用反斜线引用字符串
3.数据库操作函数:
1.$conn = mysqli_connect('db_host', 'dbl_user', 'db_password',"db_name"); 打开一个到 MySQL 服务器的新的连接 2.mysqli_select_db($con,"test"); 更改连接的默认数据库: 3.$result = mysqli_query($con,"SELECT * FROM websites"); 执行针对数据库的查询 4.$row = mysqli_fetch_array($result,MYSQLI_NUM); 从结果集中取得一行作为数字数组或关联数组 5.$row = mysqli_fetch_assoc($result); 从结果集中取得一行作为关联数组 6.$row = mysqli_fetch_row($request); 从结果集中取得行 7.$num = mysqli_affected_rows($conn); 返回前一次MySQL操作所影响的记录条数 8.$query = mysqli_real_escape_string($conn,$query); 转义在 SQL 语句中使用的字符串中的特殊字符 9.$rowcount = mysqli_num_rows($result); 返回结果集中行的数量 10.mysqli_free_result($result); 放结果内存 11.mysqli_close($con); 关闭先前打开的数据库连接