grandt / phpdebugtools
A few tools to help debug data.
Installs: 18
Dependents: 0
Suggesters: 0
Security: 0
Stars: 0
Watchers: 2
Forks: 0
Open Issues: 0
Language:HTML
Requires
- php: >=5.3.0
- grandt/binstring: >=1.0.0
This package is not auto-updated.
Last update: 2024-12-21 18:53:47 UTC
README
This package aims to provide some nice debug tools. Well, just one tool for now.
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
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
Parsing -1 as the $bytes
parameter will cause the function to dump the entirety of the file.
Import
Add this requirement to your composer.json
file:
"grandt/phpdebugtools": ">=1.0.1"
Composer
If you already have Composer installed, skip this part.
Packagist, the main composer repository has a neat and very short guide.
Or you can look at the guide at the Composer site.
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.
<?php require 'vendor/autoload.php'; . . .
Example
include "../vendor/autoload.php"; use grandt\DebugTools; $srcFile = "[path to file]"; $fh = fopen($srcFile, "rb"); echo HexBlock::createBlock($fh, 68, true); fclose($fh);