现代 PHP:使用 Sodium 扩展对数据进行加密/解密
多年来,PHP 增加了对几个扩展、库和算法的支持,以加密和解密数据。伴随着几个具有不同维护级别的库和扩展,每个算法都可能有优缺点,有些算法甚至天生不安全,因此很难选择合适的PHP扩展、库和加密结构,并平衡安全性和性能。mcrypt是为PHP带来加密/解密功能的最古老的PHP扩展之一。它不再被维护,并且在PHP 7.2中PHP将它解除了捆绑。OpenSSL...
在 PHP 中使用 Curl 压缩 HTTP 请求
压缩是提升网页性能的一个重要且有效的手段。对于文本资源如 HTML 文件、CSS/JS 文件、SVG 文件等,传输之前在服务器上对资源进行压缩,并在浏览器中解压缩可以极大减少带宽及传输时间。对服务器和浏览器来说,压缩过程是不太透明的,服务器在发送给浏览器器前对资源进行压缩,浏览器在渲染之前进行解压缩。服务端软件和前端开发者不需要处理压缩/解压缩过程。近年来开发出...
PHP 8.1: First-class 可调用(callable)语法
PHP 8.1 及以上版本支持在当前作用域中创建 callable 的新语法。相比用 Closure::fromCallable,借助该语法使用函数或方法的调用方式来创建 callable 使之更容易。Closure::fromCallable 从PHP callable(函数名,方法或匿名函数)中返回一个 callable (Closure 对象) 。该语...
PHP 8.1 - IMAP扩展:imap 资源使用 IMAP\Connection 类对象
PHP 8.1 中,imap 扩展的 IMAP 连接资源迁移到了类对象上。PHP 8.1 之前,imap_open() 函数返回一个 imap 类型的资源对象。从 PHP 8.1 开始,它返回 IMAP\Connection 类实例。
PHP 8.1 - FTP 扩展:连接资源使用 FTP\Connection 类对象
ftp 扩展的 FTP 连接资源迁移到 PHP 8.1 的类对象上。在 PHP 8.1 之前,FTP 连接使用 ftp_connect() 和 ftp_ssl_connect() 函数创建,这些函数返回一个类型为 ftp 的资源(resource)。在 PHP 8.1 以后,这些函数返回一个 FTP\Connection 类实例。所有之前接受资源类型参数的函...
PHP 8.1: GD 库添加了 webp 无损编码支持
PHP 8.1 中,GD 库支持了无损编码,并声明了一个新的 PHP 常量 IMG_WEBP_LOSSLESS,该常量用于传入到 imagewebp 函数以启用 GdImage 对象的无损编码。无损模式要求:PHP 8.1 或更高版本。GD 库,使用 WebP 支持编译 libwebp 版本 0.2.0 或更高版本。IMG_WEBP_LOSSLESS 常量 GD 库在 P...
PHP 8.1: GD 库添加了 AVIF 图片支持
AVIF(AV1 Image File)是相对较新的图片格式,它支持多种特性比如透明度和 HDR。它是一种基于 AV1 视频格式的免版税图片格式,并且以较低的文件大小提供更高的压缩。AVIF 图片格式最近才标准化,Chrome 85+ 和 FireFox 86+ 默认已经开始支持 AVIF 图片了。PHP 8.1 及更高版本的 GD 扩展支持 AVIF 图片格...
PestPHP - 一款基于 PHPUnit 的优雅测试框架
PestPHP 是一个优雅的 PHP 测试框架。它专注于简单性,精致的设计以使PHP测试变得有趣。测试 PHP 代码时,你可以接触一系列框架。尽管如此,我们相信Pest是世界上最优雅、最复杂的测试框架。它旨在使测试过程变得愉快,它的目标是使测试易于阅读和理解,代码语法与自然人类语言非常相似。function sum($a, $b) { return...
宝塔面板不能登录常用处理方法
本教程适用于腾讯云宝塔面板,也适合Linux系统安装宝塔面板的情况。sudo /etc/init.d/bt出现如下提示:===============宝塔面板命令行==================(1) 重启面板服务 (8) 改面板端口(2) 停止面板服务 ...