Intereting Posts

Чтение файла в массив байтов (PHP)

У меня есть один файл. но теперь нужно прочитать этот файл в массиве байтов. В java или c ++ это очень легко сделать. но не нашел, как я могу читать на PHP.

    Вы можете прочитать файл в строке следующим образом:

    $data = file_get_contents("/tmp/some_file.txt"); 

    Вы можете получить индивидуальные байты, похожие на то, как вы в C:

     for($i = 0; $i < strlen($data); ++$i) { $char = $data[$i]; echo "Byte $i: $char\n"; } 

    Рекомендации:

    См. Руководство PHP по доступу и изменению строки по символу

    Символы в строке s могут быть доступны и изменены, указав нулевое смещение нужного символа после строки, используя квадратные скобки, как в $str[42] . Подумайте о строке как массиве символов для этой цели. Функции substr() и substr_replace() могут использоваться, когда вы хотите извлечь или заменить более 1 символа.

    Или, если вы после поиска и чтения байтов из файла, вы можете использовать SplFileObject

     $file = new SplFileObject('file.txt'); while (false !== ($char = $file->fgetc())) { echo "$char\n"; } 

    Однако это не байтовый массив, но повторяющийся над дескриптором файла. SplFileInfo реализует интерфейс SeekableIterator .

    И на стороне, есть также

    • file – Возвращает файл в массиве. Каждый элемент массива соответствует строке в файле, а новая строка все еще прикреплена. После сбоя файл () возвращает FALSE.

    слишком много php>

    $data = file_get_contents("/tmp/some_file.txt");

    лучший способ сделать (не рекомендуется для использования count, sizeof, strlen или других функций): $counter = strlen($data); for($i = 0; $i < $counter; ++$i) { $char = data[$i]; echo "Byte $i: $char\n"; } $counter = strlen($data); for($i = 0; $i < $counter; ++$i) { $char = data[$i]; echo "Byte $i: $char\n"; }

    Вы можете прочитать файл с помощью fread() или file_get_contents() , а затем разделить его на str_split() :

     $MyArray = str_split($file);