grandt / phpdebugtools
一些帮助调试数据的工具。
Requires
- php: >=5.3.0
- grandt/binstring: >=1.0.0
This package is not auto-updated.
Last update: 2024-09-14 17:26:47 UTC
README
这个包旨在提供一些有用的调试工具。目前,只有一个工具。
介绍
目前,只添加了 HexBlock。它提供了一种从当前打开的文件流直接转储二进制数据的方法。以下是一个 gif 文件的输出示例,其中文件指针位于位置 3,该方法已被告知转储以下 68 字节。
请注意,转储后文件指针将重置到初始位置,本质上不影响句柄。
Start: 0x03; Length: 68 (0x44)
00: -- -- -- 38 39 61 59 00 68 00 c4 15 00 ad df ff | ---89aY. h.......
10: e5 f4 ff cb ea ff ff ff ff 98 d6 fe b7 b9 bb 81 | ........ ........
20: d2 ff 77 cc ff 8f c5 fe 54 9a f5 11 28 7d 65 ab | ..w..... T...(}e.
30: fe 52 75 a1 7a b7 fb 66 cc ff 5b cc fe 00 66 ff | .Ru.z..f ..[...f.
40: 0f 71 ff ff 39 00 b3 -- -- -- -- -- -- -- -- -- | .q..9..- --------
用法
调用
$block = HexBlock::createBlock($handle, $length, $encodeHtml [Default = true]);
$encodeHtml 仅仅确保任何 HTML 实体都被编码为实体,但不会添加任何换行标签。
该函数也接受一个字符串作为参数(从 1.0.1 版本开始),并将从第一个字节开始转储该字符串。
$block = HexBlock::createBlock($dataString, $length, $encodeHtml [Default = true]);
为了辅助调试,使一个测试字符串表现得像一个文件句柄可能很有用。DebugTools 1.0.1 中添加了 str2resource。
$fh = DebugHelpers::str2resource($stringData); // work fclose($fh); // Remember to close the handle to free up memory.
警告
将 -1 解析为 $bytes
参数会导致函数转储整个文件。
导入
将此需求添加到您的 composer.json
文件中
"grandt/phpdebugtools": ">=1.0.1"
Composer
如果您已经安装了 Composer,请跳过这部分。
Packagist,主要的 Composer 存储库有一个简洁且非常简短的指南。
或者您可以在 Composer 网站 上查看指南。
对于初学者来说,最简单的方法是将 composer 安装在 composer.json 文件所在的同一目录中,尽管还有更好的选择。
在命令行中运行此操作
php -r "readfile('https://getcomposer.org.cn/installer');" | php
这将检查您的 PHP 安装,并下载 composer.phar
,这是 composer 的二进制文件。然而,在服务器上不需要此文件。
一旦安装了 composer,您就可以创建 composer.json
文件来导入此包。
{ "require": { "grandt/phpdebugtools": ">=1.0.1" } }
然后告诉 Composer 安装依赖项。
php composer.phar install
这将下载并将您 composer.json
文件中定义的所有依赖项放置在 vendor
目录中。
最后,您在新的 vendor
目录中包含 autoload.php
文件。
<?php require 'vendor/autoload.php'; . . .
示例
include "../vendor/autoload.php"; use grandt\DebugTools; $srcFile = "[path to file]"; $fh = fopen($srcFile, "rb"); echo HexBlock::createBlock($fh, 68, true); fclose($fh);