将文件读入字节数组(PHP)

时间:2010-04-12 06:11:48

标签: php streaming

我有一个文件。但现在需要将此文件读入字节数组。在java或c ++中,这很容易做到。但没有找到我如何用PHP阅读。

4 个答案:

答案 0 :(得分:10)

您可以将文件读入如下字符串:

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

您可以获得类似于C中的单个字节:

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

参考文献:

答案 1 :(得分:4)

请参阅PHP Manual on String access and modification by character

  

可以通过使用方形数组括号在字符串后面指定所需字符的从零开始的偏移来访问和修改字符串s中的字符,如$str[42]中所示。将字符串视为用于此目的的字符数组。当您要提取或替换多个字符时,可以使用函数substr()substr_replace()

或者,如果您在寻找和读取文件中的字节后,可以使用SplFileObject

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

但这不是一个字节数组,而是迭代文件句柄。 SplFileInfo实现SeekableIterator接口。

在旁注中,还有

  • file - 返回数组中的文件。数组的每个元素对应于文件中的一行,换行符仍然附加。失败时,file()返回FALSE。

答案 2 :(得分:2)

您可以使用fread()file_get_contents()阅读该文件,然后将其与str_split()分开:

$MyArray = str_split($file);

答案 3 :(得分:2)

太多的php&gt;

$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"; }