抢先体验:MacOS成功安装PHP8.4教程

根据官方消息,PHP 8.4将于2024年11月21日发布。它将通过三个 alpha 版本、三个 beta 版本和六个候选版本进行测试。

这次的重大更新将为PHP带来许多优化和强大的功能。我们很高兴能够引导您完成最有趣的更新升级,这些更改将使我们能够编写更好的代码并构建更强大的应用程序。

准备好了吗?让我们深入了解吧!


PHP8.4的新增功能

PHP 8.4 的 DOM 扩展现在支持 HTML5

PHP 8.4 的 DOM 扩展刚刚进行了重大升级,支持 HTML5 解析和序列化。这意味着在处理 HTML5 特定标签或在 JavaScript 中嵌入 HTML 时不再令人头疼。

只需使用新DOM\HTMLDocument类,您的 HTML5 内容就会得到正确处理,符合现代 Web 标准。

以下是从字符串创建 HTML 文档的方法:

use DOM\HTMLDocument;$htmlDocument = HTMLDocument::createFromString('<!DOCTYPE html><html><body>Hello, HTML5!</body></html>');

或者从文件中:

use DOM\HTMLDocument;$htmlDocument = HTMLDocument::createFromFile('path/to/your/file.html');

了解更多:PHP RFC:DOM HTML5 解析和序列化

PHP 8.4 默认情况下 bcrypt 加密成本增加

在 PHP 8.4 中, bcrypt的默认加密成本已增加到 12。这意味着什么?

Bcrypt 是 PHP 使用的密码哈希函数。它充当了抵御想要破解密码的黑客的盾牌。

该护盾的加密强度可以调整。设置或“成本”越高,屏蔽越强,因为 bcrypt 是一种自适应函数:“随着时间的推移,可以增加迭代次数以使其变慢,因此即使计算量增加,它仍然可以抵抗暴力搜索攻击力量。”

为什么它如此重要?因为增加 bcrypt 的加密成本会使密码散列速度慢几毫秒。

了解更多信息:PHP RFC:增加默认 BCrypt 加密成本

PHP 8.4 可以更可靠地解析大型 XML 文档

此更改解决了 ext/xml PHP 扩展中涉及大型 XML 文档解析处理的潜在问题。

libxml2 版本 2.7.0 中的冲突修改在使用xml_parse()xml_parse_into_struct()函数时无意中中断了大型文档解析,从而导致解析错误。

PHP 8.4 引入了一个新的解析器选项来正确处理这些大型 XML 文档并防止解析错误,使开发人员能够有效地解析大型 XML 文档,而不需要复杂的解决方法。

了解更多信息:PHP RFC:XML_OPTION_PARSE_HUGE

PHP 8.4 中新的多字节修剪函数

PHP 8.4 的 mbstring 扩展现在包含三个新函数:mb_trim()mb_ltrim()mb_rtrim()。此添加使修剪具有多字节字符的字符串变得更加容易,从而改进了之前将 regex 与preg_replace().

新函数以多字节安全方式处理空格和其他字符。默认行为会删除一组预定义的字符,其中包括各种类型的空格字符,其中包括一些\s正则表达式中通常未涵盖的字符。

以下是 PHP 8.4 中的函数及其默认行为:

  • mb_trim($string, $characters):修剪字符串两端的字符。

  • mb_ltrim($string, $characters):从字符串的开头(左侧)修剪字符。

  • mb_rtrim($string, $characters):从字符串末尾(右侧)修剪字符。

默认情况下,$characters包括各种空白字符,但由于存储和兼容性问题,并非所有可能的 Unicode 字符。

了解更多:PHP RFC:修剪函数 mb_trim、mb_ltrim 和 mb_rtrim 的多字节

IMAP模块被移到PECL

在PHP 8.4中,IMAP模块无法在configure中编译集成,被移到了PECL。有IMAP模块需求的开发者,需要单独进行编译。


如何在MacOS上安装PHP8.4

目前PHP8.4还没有发布,但是ServBay己经集成了最新的PHP8.4 Dev版本,并且内置了IMAP等模块。开发者可以直接通过他们的官方网站https://www.servbay.com下载安装,只需要3分钟就可以配置好一个PHP开发环境。

(ServBay 提供广泛的 PHP 版本,从 PHP 5.6 到最新的 PHP 8.4 Dev都有,确保开发者可以随时使用他们所需的开发环境)

了解相关

结论

PHP 8.4带来了大量令人兴奋的新功能和改进,使开发人员能够编写更干净、更快、更具表现力的代码。

然而,升级到 PHP8.4 时务必谨慎。考虑向后兼容性更改并彻底测试您的代码以确保平稳过渡。通过使用ServBay,可以在不影响开发环境的情况下了解PHP 8.4的新功能并仔细规划升级过程,您可以释放 PHP8.4 的全部潜力,并将您的开发技能提升到新的高度。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/831181.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Mac brew安装Redis之后更新配置文件的方法

安装命令 brew install redis 查看安装位置命令 brew list redis #查看redis安装的位置 % brew list redis /usr/local/Cellar/redis/6.2.5/.bottle/etc/ (2 files) /usr/local/Cellar/redis/6.2.5/bin/redis-benchmark /usr/local/Cellar/redis/6.2.5/bin/redis-check-ao…

WebAssembly学习记录

1.WebAssembly 1.1 指令集 概念&#xff1a;二进制编码集合。 依据计算机组成原理和计算机概论&#xff0c;指令集是一组二进制编码。 作用&#xff1a;控制硬件。 这些二进制指令直接作用于硬件电路&#xff0c;控制硬件完成指定操作。 例如&#xff1a;控制数据进入某个寄存…

【unocss】自用

unocss中文官网1 不知道简写的可以在这里查 第一步 npm install -D unocss第二步 // vite.config.ts import UnoCSS from unocss/vite import { defineConfig } from viteexport default defineConfig({plugins: [UnoCSS()] })// main.ts import virtual:uno.css第三步 在…

基于Springboot的在线博客网站

基于SpringbootVue的在线博客网站的设计与实现 开发语言&#xff1a;Java数据库&#xff1a;MySQL技术&#xff1a;SpringbootMybatis工具&#xff1a;IDEA、Maven、Navicat 系统展示 用户登录 首页 博客标签 博客分类 博客列表 图库相册 后台登录 后台首页 用户管理 博客标…

Android 设置头像 - 裁剪及圆形头像

书接上文 Android 设置头像 - 相册拍照&#xff0c;通过相册和照片的设置就可以获取到需要的头像信息&#xff0c;但是在通常情况下&#xff0c;我们还想要实现针对头像的裁剪功能和圆形头像功能。 先上截图&#xff1a; 图像裁剪 通常裁剪可以分为程序自动裁剪和用户选择裁剪…

基于SpringBoot实现各省距离Excel导出实战

目录 前言 一、列表及图表信息展示 1、数据过滤调整 2、信息列表及图表展示 3、Excel写入 二、界面可视化 1、Echarts图表和列表展示 2、城市详情和下载功能设计 三、成果展示 1、图表展示 2、部分城市数据分析 总结 前言 今天是五一黄金周假期第二天&#xff0c;不知…

电脑自带dll修复在哪里,使用dll修复工具解决dll问题

在我们日常与电脑相伴的工作与学习过程中&#xff0c;我们经常会遇到一些错误提示&#xff0c;其中最常见的就是“无法找到.dll”或“找不到.dll文件”。这种情况通常是由于dll文件丢失或损坏导致的。dll文件是动态链接库文件&#xff0c;它包含了许多程序运行所需的函数和资源…

使用 BurpSuite 基于 Token 机制实施暴力破解

前言 Token是一种用于身份验证和授权的令牌&#xff0c;通常由服务器生成并发送给客户端&#xff0c;客户端在后续的请求中携带该令牌来进行身份验证和授权操作。Token的使用可以增强应用程序的安全性&#xff0c;避免了直接传递敏感凭证&#xff08;如用户名和密码&#xff0…

Golang | Leetcode Golang题解之第61题旋转链表

题目&#xff1a; 题解&#xff1a; func rotateRight(head *ListNode, k int) *ListNode {if k 0 || head nil || head.Next nil {return head}n : 1iter : headfor iter.Next ! nil {iter iter.Nextn}add : n - k%nif add n {return head}iter.Next headfor add > …

golang判断通道chan是否关闭的2种方式

chan通道在go语言的办法编程中使用频繁&#xff0c;我们可以通过以下2种方式来判断channel通道是否已经关闭&#xff0c;1是使用 for range循环&#xff0c;另外是通过 for循环中if 简短语句的 逗号 ok 模式来判断。 示例代码如下&#xff1a; //方式1 通过for range形式判断…

进销存单机版和excel进销存那个好用

进销存单机版和EXCEL进销存哪个好用&#xff1f;单机版是安装在单台电脑上使用的&#xff0c;它不能像网络版一样可以多台电脑同时共享数据&#xff0c;所以进销存单机版有一个优势就是不需要连接网络也可以使用。 进销存单机版 进销存软件单机版是经过开发人员设计好的一种信…

es环境安装及php对接使用

Elasticsearch Elasticsearch 是一个分布式、高扩展、高实时的搜索与数据分析引擎。它提供了一个分布式多用户能力的全文搜索引擎&#xff0c;基于RESTful web接口。Elasticsearch是用Java语言开发的&#xff0c;并作为Apache许可条款下的开放源码发布&#xff0c;是一种流行的…

postman一直转圈圈,无法启动

解决 地址栏输入%appdata%进入此目录&#xff0c;删除%appdata%目录下的postman文件可以解决问题。

贪心算法 Greedy Algorithm

1) 贪心例子 称之为贪心算法或贪婪算法&#xff0c;核心思想是 将寻找最优解的问题分为若干个步骤 每一步骤都采用贪心原则&#xff0c;选取当前最优解 因为没有考虑所有可能&#xff0c;局部最优的堆叠不一定让最终解最优 v2已经不会更新v3因为v3更新过了 贪心算法是一种在…

Ps 滤镜:智能锐化

Ps菜单&#xff1a;滤镜/锐化/智能锐化 Filter/Sharpen/Smart Sharpen 智能锐化 Smart Sharpen滤镜可以用来提高图像的视觉清晰度和边缘细节&#xff0c;同时最大限度地减少常见的锐化问题如噪点和光晕等。 “智能锐化”滤镜通过自适应算法分析图像内容&#xff0c;针对不同的细…

省级财政收入、支出、第一、二、三产业增加值、工业增加值、金融业增加值占GDP比重数据(1978-2022年)

01、数据介绍 财政收支作为国家治理的基础&#xff0c;越来越受到社会各界的关注。同时&#xff0c;产业结构的优化与升级也是中国经济持续增长的关键因素。本数据对中国省级财政收入、支出占GDP的比重以及第一、二、三产业的增加值占GDP的比重和工业增加值占GDP的比重、金融业…

Pandas入门篇(二)-------Dataframe篇5(进阶)(Dataframe的时间序列Dataframe最终篇!!)(机器学习前置技术栈)

目录 概述一、pandas的日期类型&#xff08;一&#xff09;datetime64类型的特点&#xff08;二&#xff09; 时间序列的创建1.从字符串创建datetime64类型2. 整数&#xff08;Unix时间戳&#xff09;创建datetime64类型3.导入数据时直接转换 &#xff08;三&#xff09;dateti…

打印机-STM32版本 硬件部分

最终PCB EDA工程: 一、确定芯片型号 根据项目需求&#xff0c;梳理需要用到的功能&#xff0c; 电量检测&#xff1a;ADC 按键&#xff1a;IO input外部中断 LED&#xff1a;IO output 温度检测&#xff1a;ADC 电机控制&#xff1a;IO output 打印通讯&#xff1a;SPI …

C++string类使用大全

目录 温馨提示&#xff1a;这篇文章有约两万字 什么是string类&#xff1f; 一. 定义和初始化string对象 1.string的构造函数的形式&#xff1a; 2.拷贝赋值运算符 3.assign函数 二.string对象上的操作 1.读写string对象 2.读取未知数量的string对象 3.使用getline …

windows ubuntu sed,awk,grep篇:10.awk 变量的操作符

目录 62. 变量 64. 算术操作符 65. 字符串操作符 66. 赋值操作符 67. 比较操作符 68. 正则表达式操作符 62. 变量 Awk 变量以字母开头&#xff0c;后续字符可以是数字、字母、或下划线。关键字不能用作 awk 变量。 不像其他编程语言&#xff0c; awk 变量可以直接使…