PHPackages                             grandt/phpdebugtools - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Debugging &amp; Profiling](/categories/debugging)
4. /
5. grandt/phpdebugtools

ActiveLibrary[Debugging &amp; Profiling](/categories/debugging)

grandt/phpdebugtools
====================

A few tools to help debug data.

1.0.1(10y ago)020LGPL-2.1HTMLPHP &gt;=5.3.0

Since Aug 13Pushed 10y ago1 watchersCompare

[ Source](https://github.com/Grandt/PHPDebugTools)[ Packagist](https://packagist.org/packages/grandt/phpdebugtools)[ RSS](/packages/grandt-phpdebugtools/feed)WikiDiscussions master Synced 1mo ago

READMEChangelog (2)Dependencies (1)Versions (3)Used By (0)

DebugTools
==========

[](#debugtools)

This package aims to provide some nice debug tools. Well, just one tool for now.

Introduction
------------

[](#introduction)

For now, only the HexBlock is added. What it does is provide an easy way to dump binary data directly from a currently open file stream. Example output of a gif file, where the file pointer is on position 3, the method have been told to dump the following 68 bytes.

Note that the file pointer will be reset to its initial position after the dump, essentially leaving the handle unaffected.

```
    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..- --------

```

Usage
-----

[](#usage)

Call

```
    $block = HexBlock::createBlock($handle, $length, $encodeHtml [Default = true]);
```

$encodeHtml merely ensures that any html entities are encoded as such, but doesn't add any line break tags.

The function also accepts a string as an argument (from 1.0.1), and will dump that string from the first byte.

```
    $block = HexBlock::createBlock($dataString, $length, $encodeHtml [Default = true]);
```

To assist in debugging, having a test string behave as a file handle can be useful. str2resource was added in DebugTools 1.0.1.

```
    $fh = DebugHelpers::str2resource($stringData);
    // work
    fclose($fh); // Remember to close the handle to free up memory.
```

#### Warning

[](#warning)

Parsing -1 as the `$bytes` parameter will cause the function to dump the entirety of the file.

### Import

[](#import)

Add this requirement to your `composer.json` file:

```
    "grandt/phpdebugtools": ">=1.0.1"
```

### Composer

[](#composer)

If you already have Composer installed, skip this part.

[Packagist](https://packagist.org/), the main composer repository has a neat and very short guide.

Or you can look at the guide at the [Composer site](https://getcomposer.org/doc/00-intro.md#installation-linux-unix-osx).

The easiest for first time users, is to have the composer installed in the same directory as your composer.json file, though there are better options.

Run this from the command line:

```
php -r "readfile('https://getcomposer.org/installer');" | php

```

This will check your PHP installation, and download the `composer.phar`, which is the composer binary. This file is not needed on the server though.

Once composer is installed you can create the `composer.json` file to import this package.

```
{
    "require": {
        "grandt/phpdebugtools": ">=1.0.1"
    }
}
```

Followed by telling Composer to install the dependencies.

```
php composer.phar install

```

this will download and place all dependencies defined in your `composer.json` file in the `vendor` directory.

Finally, you include the `autoload.php` file in the new `vendor` directory.

```
