grandt/phpdebugtools

一些帮助调试数据的工具。

安装: 16

依赖: 0

建议者: 0

安全: 0

星标: 0

关注者: 2

分支: 0

开放问题: 0

语言:HTML

1.0.1 2015-08-28 12:34 UTC

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);