index.php - PHP Online

Form of PHP Sandbox

Enter Your PHP code here for testing/debugging in the Online PHP Sandbox. As in the usual PHP files, you can also add HTML, but do not forget to add the tag <?php in the places where the PHP script should be executed.



Your result can be seen below.

Result of php executing





Full code of index.php.php

  1. <?php
  2.  
  3. include 'lib.php';
  4.  
  5. $offset = 123; // откуда начнём читать
  6. $file_handle = fopen("secret.bmp", "r"); // получаем дескриптор файла (для чтения и записи)
  7. // b в "rb" указывает ,что мы собрались читать бинарный файл
  8.  
  9. $barr = array();// массив байтов файла
  10. while ($data = fread($file_handle, 1)) // читаем по одному байту
  11. {
  12.     // получаем массив двоичных чисел
  13.     //$barr[] = str_pad(base_convert(bin2hex($data), 16, 2), 8, '0', STR_PAD_LEFT);// дополняем до 8-ми символов
  14.     $barr[] = bin2hex($data);// получим данные в шестинатеричном виде 
  15. }
  16.  
  17. $tarr = array(); 
  18. $n = 1; // счётчик битов в байтах скрытого текста, который мы извлекаем
  19. $m = 1; // счётчик извлечённых байтов
  20. $c = count($barr); 
  21.  
  22. for ($i = $offset; $i < $c; $i++)
  23. {
  24.     $symb = str_to_arr(str_pad(base_convert($barr[$i], 16, 2), 8, '0', STR_PAD_LEFT));// получаем очередной байт в виде 8 бит(массив)
  25.    $tarr[$m][$n] = $symb[7];// берём самый младший
  26.     $n++; 
  27.     if ($n == 9) { 
  28.     //echo '<br>--a$ ' . $tarr[$m];
  29.         $tarr[$m] = chr(base_convert(arr_to_str($tarr[$m]), 2, 10)); // сразу получаем очередной символ
  30.         echo $tarr[$m];
  31.         $n = 1;
  32.         $m++;
  33.     }
  34. }
  35.  
  36. echo '<br>';
  37. print_line($tarr);