PHP学习笔记2

Posted by Xiaoxi on February 24, 2016

PHP表单

  1. GET vs. POST
    • GET 和 POST 都创建数组(例如,array( key => value, key2 => value2, key3 => value3, …))。此数组包含键/值对,其中的键是表单控件的名称,而值是来自用户的输入数据。
    • GET 和 POST 被视作 $_GET 和 $_POST。它们是超全局变量,这意味着对它们的访问无需考虑作用域
    • 无需任何特殊代码,您能够从任何函数、类或文件访问它们。
    • $_GET 是通过 URL 参数传递到当前脚本的变量数组。
    • $_POST 是通过 HTTP POST 传递到当前脚本的变量数组。
  2. 何时使用 GET?
    • 通过 GET 方法从表单发送的信息对任何人都是可见的(所有变量名和值都显示在 URL 中)。GET 对所发送信息的数量也有限制。限制在大于 2000 个字符。不过,由于变量显示在 URL 中,把页面添加到书签中也更为方便。
    • GET 可用于发送非敏感的数据。 注释:绝不能使用 GET 来发送密码或其他敏感信息!
  3. 何时使用 POST?
    • 通过 POST 方法从表单发送的信息对其他人是不可见的(所有名称/值会被嵌入 HTTP 请求的主体中),并且对所发送信息的数量也无限制。
    • 此外 POST 支持高阶功能,比如在向服务器上传文件时进行 multi-part 二进制输入。不过,由于变量未显示在 URL 中,也就无法将页面添加到书签。

高级教程

  1. include文件

    • 服务器端包含 (SSI) 用于创建可在多个页面重复使用的函数、页眉、页脚或元素。

    • include (或 require)语句会获取指定文件中存在的所有文本/代码/标记,并复制到使用 include 语句的文件中。
    • include与require的区别:
      • require 会生成致命错误(E_COMPILE_ERROR)并停止脚本
      • include 只生成警告(E_WARNING),并且脚本会继续
  2. 操作文件
    • readfile()函数 读取文件,并把它写入输出缓冲
    • fopen()函数 打开文件
    • fread() 和上面的函数一样,会以一种模式(r,w,a,x,r+,w+,a+,x+)来执行后续的动作。
    • fclose 关闭文件
    • fgets() 读取单行文件
    • feof()检测是否到达文件末尾
    • fgets() 读取单个字符
    • fwrite() 写入文件
    • 上传脚本 image
  3. Cookie 用于识别用户

    • setcookie() 函数用于设置 cookie。

      注释:setcookie() 函数必须位于 <html> 标签之前。 语法

      setcookie(name, value, expire, path, domain);

    • $_COOKIE 变量用于取回cookie值

  4. Sessions

    • session 变量用于存储有关用户会话的信息,或更改用户会话的设置。Session 变量保存的信息是单一用户的,并且可供应用程序中的所有页面使用。
    • session_start() 函数必须位于 <html> 标签之前:

        <?php session_start(); ?>
        <html>
        <body>
        </body>
        </html>
      
    • 存储Session变量-使用 PHP $_SESSION 变量。
    • 终结Session 如果您希望删除某些 session 数据,可以使用 unset() 或 session_destroy() 函数。

      unset() 函数用于释放指定的 session 变量

      您也可以通过 session_destroy() 函数彻底终结 session

  5. 过滤器

    • filter_var() - 通过一个指定的过滤器来过滤单一的变量
    • filter_var_array() - 通过相同的或不同的过滤器来过滤多个变量
    • filter_input - 获取一个输入变量,并对它进行过滤
    • filter_input_array - 获取多个输入变量,并通过相同的或不同的过滤器对它们进行过滤
    • Validating 和 Sanitizing

      有两种过滤器:

      Validating 过滤器:

      用于验证用户输入

      严格的格式规则(比如 URL 或 E-Mail 验证)

      如果成功则返回预期的类型,如果失败则返回 FALSE

      Sanitizing 过滤器:

      用于允许或禁止字符串中指定的字符

      无数据格式规则

      始终返回字符串