05 2021 档案
摘要:我们已经学过不少 PHP 中加密扩展相关的内容了。而今天开始,我们要学习的则是重点中的重点,那就是 OpenSSL 加密扩展的使用。为什么说它是重点中的重点呢?一是 OpenSSL 是目前 PHP 甚至是整个开发圈中的数据加密事实标准,包括 HTTPS/SSL 在内的加密都是它的实际应用,二是 Op
阅读全文
摘要:这次我们要学习的又是一个 Hash 加密扩展。不过这个扩展 Mhash 已经集成在了 Hash 扩展中。同时也需要注意的是,这个扩展已经不推荐使用了,我们应该直接使用 Hash 扩展中的函数来进行 Hash 加密操作。所以,我们今天仍然是以学习为目的的进行了解。关于 Hash 扩展的内容,我们可以查
阅读全文
摘要:今天我们来学习的是 PHP 中的一个过时的扩展 Mcrypt 。在 PHP7 之前,这个扩展是随 PHP 安装包一起内置发布的,但是现在新版本的 PHP 中已经没有了,需要使用这个扩展的话我们需要单独安装,并且在使用的时候也是会报出过时的警告的。所以,我们学习使用这些函数的时候,就需要使用 @ 来抑
阅读全文
摘要:今天我们主要学习的是 PHP 中一些 Hash 散列加密相关的扩展函数的使用,而不是 Hash 算法,这种加密其实也只是一种更复杂一些的密钥算法,与 Hash 算法类似的是,我们输入的一串字符串,就像一个 Hash 表一样有其对应的 Hash 散列值,本质上和普通的数据结构中的 Hash 键值映射是
阅读全文
摘要:今天我们来介绍的是 PHP 中的加密伪随机数生成器(CSPRNG 扩展)。随机数的生成其实非常简单,使用 rand() 或者 mt_rand() 函数就可以了,但是我们今天说的这个则是使用了更复杂算法的一套随机数生成器。rand() 已经不是很推荐使用了,mt_rand() 的生成速度更快一些,也是
阅读全文
摘要:简单了解Phar代码打包工具的使用 Phar 是在 PHP5 之后提供的一种类似于将代码打包的工具。本质上是想依照 Java 的 Jar 文件那种形式的代码包,不过本身由于 PHP 是不编译的,所以这个 Phar 实际上就是将代码原样的进行打包,不会进行编译。但是我们可以对打包的 Phar 包进行压
阅读全文
摘要:对于 PHP 开发者来说,单步的断点 Debug 调试并不是我们的必修课,而 Java 、 C# 、 C++ 这些静态语言则会经常性地进行这种调试。其实,我们 PHP 也是支持这类调试方式的,特别是对于了解一些开源框架,或者有非常深层次的 Bug 跟踪时,断点调试会非常有用。 不少接触过 PHP 断
阅读全文
摘要:在 PHP 中,我们可以通过 phpinfo() 查看到当前系统中的环境变量信息(Environment)。在代码中,我们也可以通过两个函数,查看和修改相应的环境变量信息。 getenv() 获取环境变量信息 在不传参数的情况下,我们可以通过 getenv() 这个函数获得所有的环境变量信息。不过需
阅读全文
摘要:这次为大家带来的是另外一个 PHP 的压缩扩展,当然也是非常冷门的一种压缩格式,所以使用的人会比较少,而且在 PHP 中提供的相关的函数也只是对字符串的编码与解码,并没有针对文件的操作。因此,就像 Bzip2 一样,我们也可以用它来进行一些加密传输的操作。 LZF 扩展直接在 phar.php.ne
阅读全文
摘要:在日常的开发和电脑使用中,我们经常会接触到压缩和解压的一些工具,PHP 也为我们准备了很多相关的操作扩展包,都有直接可用的函数能够方便的操作一些压缩解压功能。今天,我们先学习一个比较简单但不太常用的压缩格式:Bzip2。 安装扩展 这个扩展的安装需要系统有 bzip2-devel 。所以我们需要先给
阅读全文
摘要:PHP 作为一个 Web 开发语言,相对来说,命令行程序并不是它的主战场。所以很多年轻的 PHP 开发者可能连命令行脚本都没有写过,更别提交互式的命令操作了。而今天,我们带来的这个扩展就是针对 PHP 的交互式命令行操作的。 readline 扩展函数实现了访问 GNU Readline 库的接口。
阅读全文
摘要:之前的文章中我们已经学习过一个 PHP 自带的扩展缓存 Apc ,今天我们来学习另一个缓存扩展:Yac 。 什么是 Yac 从名字其实就能看出,这又是鸟哥大神的作品。毕竟是 PHP 的核心开发人员,他的作品每次都不会让我们失望。鸟哥可以说是我们中国程序员的骄傲,他在 PHP 界有举足轻重的地位,大家
阅读全文
摘要:关于文件相关的操作,想必大家已经非常了解了,在将来我们刷到手册中相关的文件操作函数时也会进行详细的讲解。今天,我们先来了解一下在 PHP 中关于临时文件相关的一些内容。 获取 PHP 的默认临时创建文件目录 学习过 Linux 操作系统的都会知道有一个目录是 /tmp 目录( Windows 中一般
阅读全文
摘要:这次又为大家带来一个好玩的扩展。我们知道,在 PHP 运行的时候,也就是部署完成后,我们是不能修改常量的值,也不能修改方法体内部的实现的。也就是说,我们编码完成后,将代码上传到服务器,这时候,我们想在不修改代码的情况去修改一个常量的值是不行的。常量本身就是不允许修改的。但是,runkit 扩展却可以
阅读全文
摘要:之前的文章中,我们已经学习过引用和引用传值相关的知识。我们知道,PHP 中没有纯引用(指针),不管是对象,还是用引用符号 & 赋值的变量,都是对一个符号表的引用。而今天,我们要学习的是另一种引用形式:弱引用。 什么是弱引用 弱引用允许程序员保留对对象的引用,而该对象不会阻止对象被销毁;它们对于实现类
阅读全文
摘要:使用 PHP 开发的同学多少都会接触过 CLI 命令行。经常会有一些定时任务或者一些脚本直接使用命令行处理会更加的方便,有些时候我们会需要像网页的 GET 、 POST 一样为这些命令行脚本提供参数。比如在针对某些日期做统计的脚本,就需要传递一个日期给它,这样我们就统计指定日期的一些数据。这类需求应
阅读全文
摘要:在 PHP 中,我们需要进行调试的时候,一般都会使用 memory_get_usage() 看下内存的使用情况。但如果想看当前的脚本 CPU 的占用情况就没有什么现成的函数了。不过,PHP 也为我们提供了一个扩展:XHProf ,这是由 FaceBook 开源的一个扩展,它可以帮我们看到当前脚本运行
阅读全文
摘要:我们的 PHP 在执行的时候,其实可以获取到非常多的当前系统相关的信息。就像很多开源的 CMS 一般会在安装的时候来检测一些环境信息一样,这些信息都是可以方便地动态获取的。 脚本文件运行时的系统用户相关信息 首先,我们来看看获取当前系统相关的一些用户信息。这个用户信息就是我们系统运行 php 脚本时
阅读全文