PHP - чтение скрытого текста из bmp - пример программы на PHP

более подробные пояснения к тому, что происходит здесь = http://fkn.ktu10.com/?q=node/4317
скрывался текст таким образом

А вот пример чтения из картинки:

<?php

include 'lib.php';

$offset = 123; // откуда начнём читать
$file_handle = fopen("rf2000.bmp", "r"); // получаем дескриптор файла (для чтения и записи)
// b в "rb" указывает ,что мы собрались читать бинарный файл

$barr = array();// массив байтов файла
while ($data = fread($file_handle, 1)) // читаем по одному байту
{
	// получаем массив двоичных чисел
	//$barr[] = str_pad(base_convert(bin2hex($data), 16, 2), 8, '0', STR_PAD_LEFT);// дополняем до 8-ми символов
	$barr[] = bin2hex($data);// получим данные в шестинатеричном виде 
}

$tarr = array(); 
$n = 1; // счётчик битов в байтах скрытого текста, который мы извлекаем
$m = 1; // счётчик извлечённых байтов
$c = count($barr); 

for ($i = $offset; $i < $c; $i++)
{
	$symb = str_to_arr(str_pad(base_convert($barr[$i], 16, 2), 8, '0', STR_PAD_LEFT));// получаем очередной байт в виде 8 бит(массив)
   $tarr[$m][$n] = $symb[7];// берём самый младший
	$n++; 
	if ($n == 9) { 
	//echo '<br>--a$ ' . $tarr[$m];
		$tarr[$m] = chr(base_convert(arr_to_str($tarr[$m]), 2, 10)); // сразу получаем очередной символ
		echo $tarr[$m];
		$n = 1;
		$m++;
	}
}

echo '<br>';
print_line($tarr);



ПРИМЕЧАНИЕ: реализацию пользовательских функций (lib.php) для данного примера можно найти здесь = http://fkn.ktu10.com/?q=node/4315