Чтение файла в байтовый массив (PHP) - PullRequest
6 голосов
/ 12 апреля 2010

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

Ответы [ 4 ]

10 голосов
/ 12 апреля 2010

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

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

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

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

Ссылки:

4 голосов
/ 12 апреля 2010

См. Руководство по PHP для доступа к строкам и их модификации по символам

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

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

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

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

И на sidenote есть также

  • file - Возвращает файл в массиве. Каждый элемент массива соответствует строке в файле с новой строкой, все еще прикрепленной. В случае неудачи file () возвращает FALSE.
2 голосов
/ 12 апреля 2010

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

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

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

2 голосов
/ 12 апреля 2010

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

$MyArray = str_split($file);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...