Non ho ben capito la tua richiesta. Vuoi prendere un certo numero di bytes da un byte determinato o vuoi stampare a video in forma esadecimale ?
Se vuoi fare una specie di substr su un file puoi fare cosi.
codice:
<?php
function subFile($fileName,$startByte, $length=0) {
if ($length == 0) {
$size = filesize($fileName) - $startByte - 1;
} else {
$size = $length;
} // if ($length == 0)
$file = fopen($fileName, "r");
if (!$file) {
echo "
Impossibile aprire il file </p>.\n";
return false;
} // if (!$file)
if ($startByte > 0) {
$line = fread($file, $startByte);
} // if ($startByte > 0)
$next = fread($file, $size);
fclose($file);
return $next;
} // function subFile($fileName,$startByte, $length=0)
function subFileHEX($fileName,$startByte, $length=0) {
$result = subFile($fileName,$startByte, $length);
$resHEX = "";
for ($i=0;$i<strlen($result);$i++) {
$resHEX .= ord($result[$i]);
} // for ($i=0;$i<count($result);$i++)
return $resHEX;
} // function subFileHEX($fileName,$startByte, $length=0)
?>
<?php
//------ Il primo carattere è il numero 0 -> Prende tutto il file
print subFile("pippo.txt",0);
print "</br>";
//------ Prende 10 caratteri dal carattere 13
print subFile("pippo.txt",12,10);
print "</br>";
//------ Prende 10 caratteri dal carattere 13
print subFileHEX("pippo.txt",12);
?>