• PHP高级教程


    🐌博主主页:🐌​倔强的大蜗牛🐌​

    📚专栏分类:PHP

    📚参考教程:菜鸟\编程网
    ❤️感谢大家点赞👍收藏⭐评论✍️

    目录

    一、PHP 多维数组 

    二、PHP date() 函数 

    PHP Date() - 格式化日期

    三、PHP 包含文件 

    PHP include 和 require 语句

    四、PHP 文件处理

    打开文件

    关闭文件

    检测文件末尾(EOF) 

    逐行读取文件

    逐字符读取文件

    五、PHP Cookie

    Cookie 是什么?

    如何创建 Cookie?

    如何取回 Cookie 的值? 

    六、PHP Session

    七、PHP 发送电子邮件

    八、PHP 错误处理

    九、PHP 异常处理

    十、PHP 过滤器

    什么是 PHP 过滤器?

    函数和过滤器

    Validating 和 Sanitizing 

    十一、PHP JSON的

    JSON 函数

    json_encode

    json_decode 


    一、PHP 多维数组 

    多维数组是包含一个或多个数组的数组。

    在多维数组中,主数组中的每一个元素也可以是一个数组,子数组中的每一个元素也可以是一个数组。

    一个数组中的值可以是另一个数组,另一个数组的值也可以是一个数组,依照这种方式,我们可以创建二维或者三维数组。

    二维数组语法格式:

    array (
        array (elements...),
        array (elements...),
        ...
    )

    1. // 二维数组:
    2. $cars = array
    3. (
    4. array("Volvo",100,96),
    5. array("BMW",60,59),
    6. array("Toyota",110,100)
    7. );
    8. ?>

    二、PHP date() 函数 

    PHP date() 函数用于格式化时间/日期。

    PHP date() 函数可把时间戳格式化为可读性更好的日期和时间。

    时间戳是一个字符序列,表示一定的事件发生的日期/时间。

    语法:

    string date ( string $format [, int $timestamp ] ) 

    参数描述
    格式必需。规定时间戳的格式。
    时间戳可选。规定时间戳。默认是当前的日期和时间。

    PHP Date() - 格式化日期

    date() 函数的第一个必需参数 format 规定了如何格式化日期/时间。

    这里列出了一些可用的字符:

    • d - 代表月中的天 (01 - 31)
    • M - 代表月 (01 - 12)
    • Y - 代表年 (四位数)

     可以在字母之间插入其他字符,比如 "/"、"." 或者 "-",这样就可以增加附加格式了:

    1. echo date("Y/m/d") . "
      "
      ;
    2. echo date("Y.m.d") . "
      "
      ;
    3. echo date("Y-m-d");
    4. ?>

    三、PHP 包含文件 

    PHP include 和 require 语句

    include 和 require 除了处理错误的方式不同之外,在其他方面都是相同的:

    • require 生成一个致命错误(E_COMPILE_ERROR),在错误发生后脚本会停止执行。
    • include 生成一个警告(E_WARNING),在错误发生后脚本会继续执行。

    包含文件省去了大量的工作。这意味着您可以为所有网页创建标准页头、页脚或者菜单文件。然后,在页头需要更新时,您只需更新这个页头包含文件即可。

    语法:

    include 'filename';

    或者

    require 'filename';

     假设我们有一个定义变量的包含文件("vars.php"):

    1. $color='red';
    2. $car='BMW';
    3. ?>

    这些变量可用在调用文件中:

    1. "utf-8">
    2. 崛强的大蜗牛
    3. 欢迎来到我的主页!

    4. include 'vars.php';
    5. echo "I have a $color $car"; // I have a red BMW
    6. ?>

    四、PHP 文件处理

    打开文件

    fopen() 函数用于在 PHP 中打开文件。

    模式描述
    r只读。在文件的开头开始。
    r+读/写。在文件的开头开始。
    w只写。打开并清空文件的内容;如果文件不存在,则创建新文件。
    w+读/写。打开并清空文件的内容;如果文件不存在,则创建新文件。
    a追加。打开并向文件末尾进行写操作,如果文件不存在,则创建新文件。
    a+读/追加。通过向文件末尾写内容,来保持文件内容。
    x只写。创建新文件。如果文件已存在,则返回 FALSE 和一个错误。
    x+读/写。创建新文件。如果文件已存在,则返回 FALSE 和一个错误。

    注释:如果 fopen() 函数无法打开指定文件,则返回 0 (false)。

    关闭文件

    fclose() 函数用于关闭打开的文件:

    1. $file = fopen("test.txt","r");
    2. //执行一些代码
    3. fclose($file);
    4. ?>

    检测文件末尾(EOF) 

    feof() 函数检测是否已到达文件末尾(EOF)。

    if (feof($file)) echo "文件结尾";

    逐行读取文件

    fgets() 函数用于从文件中逐行读取文件。

    注释:在调用该函数之后,文件指针会移动到下一行。

    逐字符读取文件

    fgetc() 函数用于从文件中逐字符地读取文件。

    注释:在调用该函数之后,文件指针会移动到下一个字符。

    五、PHP Cookie

    Cookie 是什么?

    Cookie是一种小型文本文件,存储在用户的计算机或移动设备上。它由网站创建,用于记住用户的一些信息,如登录状态、偏好设置等。当用户访问同一网站时,浏览器会将Cookie发送给服务器,以便服务器识别用户并提供个性化体验。

    如何创建 Cookie?

    setcookie() 函数用于设置 cookie。

    注释:setcookie() 函数必须位于 标签之前。

    语法:

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

    如何取回 Cookie 的值? 

    PHP 的 $_COOKIE 变量用于取回 cookie 的值。

    六、PHP Session

    PHP Session 变量是一种在服务器端存储用户会话数据的机制。会话数据是指在用户与网站进行交互时产生的数据,如登录状态、购物车内容等。通过使用 Session 变量,开发者可以在用户访问网站的不同页面时跟踪和保存用户的状态信息。

    在 PHP 中,使用 Session 变量的基本步骤如下:

    • 启动会话:在脚本开始时,使用 session_start() 函数启动会话。这将启动一个新的会话或者重用现有会话(如果已经存在)。
    session_start();
    • 设置 Session 变量:使用 $_SESSION 超全局数组来设置和获取 Session 变量。将数据存储在 $_SESSION 数组中,服务器会在用户的每次请求之间保留这些数据。
    1. $_SESSION['username'] = 'JohnDoe';
    2. $_SESSION['logged_in'] = true;
    •  获取 Session 变量:在其他页面中,可以通过 $_SESSION 数组访问已设置的 Session 变量。
    echo 'Welcome, ' . $_SESSION['username'] . '!';
    • 销毁 Session 变量:当用户登出或会话结束时,可以使用 session_destroy() 函数销毁会话数据。
    session_destroy();
    •  删除某个 Session 变量:要删除某个特定的 Session 变量,可以使用 unset() 函数
    unset($_SESSION['username']);

    七、PHP 发送电子邮件

    PHP mail() 函数用于从脚本中发送电子邮件。

    语法:

    mail(to,subject,message,headers,parameters)

    参数描述
    to必需。规定 email 接收者。
    subject必需。规定 email 的主题。注释:该参数不能包含任何新行字符。
    message必需。定义要发送的消息。应使用 LF (\n) 来分隔各行。每行应该限制在 70 个字符内。
    headers可选。规定附加的标题,比如 From、Cc 和 Bcc。应当使用 CRLF (\r\n) 分隔附加的标题。
    parameters可选。对邮件发送程序规定额外的参数。

    八、PHP 错误处理

    在 PHP 中,错误处理是确保代码在出现问题时能够正常运行的关键部分。PHP 提供了多种错误处理机制,包括错误报告、异常处理和自定义错误处理函数。

    • 错误报告:PHP 默认会报告大多数错误,例如语法错误、运行时错误等。可以通过设置 error_reporting 和 display_errors 配置选项来控制错误报告的级别和显示方式。
    1. // 设置错误报告级别
    2. error_reporting(E_ALL); // 报告所有错误
    3. // 设置是否在页面上显示错误
    4. ini_set('display_errors', 1); // 在页面上显示错误
    • 异常处理:PHP 提供了异常处理机制,允许开发者在代码中抛出和捕获异常。使用 trycatch 和 throw 语句来处理异常。
    1. try {
    2. // 可能抛出异常的代码
    3. throw new Exception("An error occurred");
    4. } catch (Exception $e) {
    5. // 处理异常的代码
    6. echo "Caught exception: " . $e->getMessage();
    7. }
    • 自定义错误处理函数:PHP 允许开发者定义自己的错误处理函数,该函数会在发生错误时被调用。使用 set_error_handler() 函数来设置自定义错误处理函数。
    1. function custom_error_handler($error_number, $error_message, $error_file, $error_line) {
    2. // 自定义错误处理逻辑
    3. echo "Error: [$error_number] $error_message in $error_file on line $error_line";
    4. }
    5. // 设置自定义错误处理函数
    6. set_error_handler("custom_error_handler");
    • 断言:PHP 提供了断言机制,允许开发者在代码中检查条件是否为真。如果条件为假,将抛出一个错误。使用 assert() 函数来使用断言。
    1. // 设置断言处理函数
    2. assert_options(ASSERT_CALLBACK, "assert_handler");
    3. function assert_handler($file, $line, $code) {
    4. // 自定义断言处理逻辑
    5. echo "Assertion failed in $file on line $line";
    6. }
    7. // 使用断言
    8. assert(1 + 1 == 2, "The universe is broken");

    九、PHP 异常处理

    异常处理用于在指定的错误(异常)情况发生时改变脚本的正常流程。这种情况称为异常。

    当异常被触发时,通常会发生:

    • 当前代码状态被保存
    • 代码执行被切换到预定义(自定义)的异常处理器函数
    • 根据情况,处理器也许会从保存的代码状态重新开始执行代码,终止脚本执行,或从代码中另外的位置继续执行脚本
    • getMessage() - 异常消息

    • getCode() - 例外代码

    • getFile() - 源文件名

    • getLine() - 源代码行

    • gettrace() - n的backtrace()数组

    • getTraceAsString() - 格式化的跟踪字符串

    十、PHP 过滤器

    什么是 PHP 过滤器?

    PHP 过滤器(Filter)是一组用于处理和验证数据的内置函数。过滤器可以帮助开发者确保用户输入的数据是有效的、安全的,并且符合预期的格式。PHP 提供了多种过滤器,可以用于过滤和验证数据类型、字符串、整数、浮点数、数组等。

    函数和过滤器

    如需过滤变量,请使用下面的过滤器函数之一:

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

    Validating 和 Sanitizing 

    Validating 过滤器:

    • 用于验证用户输入
    • 严格的格式规则(比如 URL 或 E-Mail 验证)
    • 如果成功则返回预期的类型,如果失败则返回 FALSE

    Sanitizing 过滤器:

    • 用于允许或禁止字符串中指定的字符
    • 无数据格式规则
    • 始终返回字符串

    十一、PHP JSON的

    JSON 函数

    函数描述
    json_encode对变量进行 JSON 编码
    json_decode对 JSON 格式的字符串进行解码,转换为 PHP 变量
    json_last_error返回最后发生的错误

    json_encode

    PHP json_encode() 用于对变量进行 JSON 编码,该函数如果执行成功返回 JSON 数据,否则返回 FALSE 。

    语法:

    string json_encode ( $value [, $options = 0 ] )

    参数

    • value: 要编码的值。该函数只对 UTF-8 编码的数据有效。
    • 选项:由以下常量组成的二进制掩码 JSON_HEX_QUOT, JSON_HEX_TAG, JSON_HEX_AMP, JSON_HEX_APOS, JSON_NUMERIC_CHECK, JSON_PRETTY_PRINT, JSON_UNESCAPED_SLASHES, JSON_FORCE_OBJECT, JSON_PRESERVE_ZERO_FRACTION, JSON_UNESCAPED_UNICODE, JSON_PARTIAL_OUTPUT_ON_ERROR。

      要注意的是 JSON_UNESCAPED_UNICODE 选项,如果我们不希望中文被编码,可以添加该选项。

    将 PHP 数组转换为 JSON 格式数据:

    1. $arr = array('a' => 1, 'b' => 2, 'c' => 3, 'd' => 4, 'e' => 5);
    2. echo json_encode($arr);
    3. ?>

    {"a":1,"b":2,"c":3,"d":4,"e":5} 

    json_decode 

    PHP json_decode() 函数用于对 JSON 格式的字符串进行解码,并转换为 PHP 变量。

    语法:

    mixed json_decode ($json_string [,$assoc = false [, $depth = 512 [, $options = 0 ]]])

    参数:

    • json_string: 待解码的 JSON 字符串,必须是 UTF-8 编码数据

    • assoc: 当该参数为 TRUE 时,将返回数组,FALSE 时返回对象。

    • depth: 整数类型的参数,它指定递归深度

    • options: 二进制掩码,目前只支持 JSON_BIGINT_AS_STRING 。

    1. $json = '{"a":1,"b":2,"c":3,"d":4,"e":5}';
    2. var_dump(json_decode($json));
    3. var_dump(json_decode($json, true));
    4. ?>

    object(stdClass)#1 (5) {
        ["a"] => int(1)
        ["b"] => int(2)
        ["c"] => int(3)
        ["d"] => int(4)
        ["e"] => int(5)
    }

    array(5) {
        ["a"] => int(1)
        ["b"] => int(2)
        ["c"] => int(3)
        ["d"] => int(4)
        ["e"] => int(5)
    }
     

    ❤️结语: 

    本次精彩内容已圆满结束!希望各位读者在阅读过程中能够收获满满。在此,特别感谢各位读者的支持与三连赞。如果文章中存在任何问题或不足之处,欢迎在评论区留言,蜗牛必定会认真对待并加以改进,以便为大家呈现更优质的文章。你们的支持与鼓励,将是博主不断前进的最大动力。再次感谢大家的陪伴与支持!

  • 相关阅读:
    【无标题】
    【pycharm】控制台报错:终端无法加载文件\venv\Scripts\activate.ps1
    高云FPGA系列教程(9):cmd-parser串口命令解析器移植
    从 0 开始手写实现一个 RPC 框架!
    Linux必学命令之设备管理系列
    Vue渲染MarkDown
    代码随想录笔记--单调栈篇
    水球展示——微信小程序
    python多线程系列—Queue对象(五)
    图的存储结构
  • 原文地址:https://blog.csdn.net/m0_73736495/article/details/138546576