zoukankan      html  css  js  c++  java
  • PHP基础面试题

    1.POST和GET这两种提交方式有什么区别?

    HTPT对于客户端与服务器的交互定义了不同的方式,最基本的方法有四种:PUT、DELETE、POST、GET,对应着对网络上某个资源的增、删、改、查。因此,GET一般用于获取、查询资源,而POST一般用于更新资源信息。

    1. 使用目的:GET 是从服务器上获取数据;POST 是向服务器传送数据
    2. 可见性:GET 请求参数是作为一个键值对的序列附加到URL上的;POST 则是把提交的数据放置在是HTTP包的包体中
    3. 安全性:GET 由于把参数添加到了URL上,因此是不安全的;而POST 则比较安全
    4. 数据大小: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 的存在,通常要借助 Cookie 实现,但这并非必要,只能说是通用性较好的一种实现方案。 如果客户端的浏览器禁用了Cookie,一般情况下,会使用一种叫做URL重写的技术来进行会话跟踪,即每次HTTP交互,URL后面都会被附加上一个诸如 sid=xxxxx 这样的参数,服务端据此来识别用户。

            总结一下:

            Session是在服务端保存的一个数据结构,用来跟踪用户的状态,这个数据可以保存在集群、数据库、文件中;

            Cookie是客户端保存用户信息的一种机制,用来记录用户的一些信息,也是实现Session的一种方式。

    1. 存储位置:Session存储于服务器,Cookie存储于浏览器
    2. 安全性:session安全性比cookie高
    3. Session为‘会话服务’,在使用时需要开启服务(session_start()),Cookie不需要开启,可以直接用
    4. 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);     关闭先前打开的数据库连接
  • 相关阅读:
    Nginx安装详细指南
    git 常用命令
    oracle server config
    CentOS6.5下安装oracle11gR2
    oracle query
    oracle function
    oracle note
    正则表达
    DOM&BOM的起源、方法、内容、应用
    sticky
  • 原文地址:https://www.cnblogs.com/jxc321/p/9619563.html
Copyright © 2011-2022 走看看