PHP Classes

File: tests/DebugTools.Test1.php

Recommend this page to a friend!
  Classes of Asbjorn Grandt   PHP Hex Dump   tests/DebugTools.Test1.php   Download  
File: tests/DebugTools.Test1.php
Role: Example script
Content type: text/plain
Description: Initial release
Class: PHP Hex Dump
Output data from file in hexadecimal format
Author: By
Last change: Added dump of a string

* Added: DebugHelpers class with a str2resource function
* Changed: HexBlock now also takes a string as input.
Date: 8 years ago
Size: 1,506 bytes
 

Contents

Class file image Download
<?php
error_reporting
(E_ALL | E_STRICT);
ini_set('error_reporting', E_ALL | E_STRICT);
ini_set('display_errors', 1);

include
"../vendor/autoload.php";

use
grandt\DebugTools\DebugHelpers;
use
grandt\DebugTools\HexBlock;

$srcFile = 'resources/Squares.gif';

echo
"<!doctype html><html><head><title>DebugTools.Test1</title></head><body><pre>\n";
$fh = fopen($srcFile, "rb");
echo
"Skip 3 bytes\n";
$data = fread($fh, 3);
echo
"Dump 68 bytes\n";
echo
HexBlock::createBlock($fh, 68, true);
echo
"\n\nHexBlock::createBlock returns the file pointer to its original position:\n";
echo
"Dump 0x10 bytes\n";
echo
HexBlock::createBlock($fh, 0x10, true);
echo
"\n\nRead 32 bytes into a string for use in the next calls.\n";
$data2 = fread($fh, 0x20);
fclose($fh);
echo
"\nDump 16 bytes from a string (Will always start at pos 0x00. While the string was read from the same stream above, it doesn't come with an offset pointer into the stream.)\n";
echo
HexBlock::createBlock($data2, 16, true);
echo
"\n\nRequest Dump of 48 bytes from a string, 16 bytes more than is available.\n";
echo
HexBlock::createBlock($data2, 48, true);
echo
"\n\nAlternatively, turn the string into a file handle, and manipulate that.\n";
$fh = DebugHelpers::str2resource($data.$data2);
echo
HexBlock::createBlock($fh, 32, true);
echo
"Skip 3 bytes\n";
$data = fread($fh, 3);
echo
"\n\nDump 68 bytes (using the data read earlier, 3 + 32 bytes total)\n";
echo
HexBlock::createBlock($fh, 68, true);
fclose($fh);

echo
"</pre></body></html>\n";