У меня есть один файл. но теперь нужно прочитать этот файл в массиве байтов. В 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 .
И на стороне, есть также
слишком много 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);