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

将文件读入字节数组(PHP),php,streaming,Php,Streaming,我有一个文件。但现在需要将此文件读入字节数组。在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"; } for($i=0;

我有一个文件。但现在需要将此文件读入字节数组。在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";
}
for($i=0;$i
参考资料:


您可以使用或读取文件,然后使用以下选项拆分文件:

通过使用方括号指定字符串后所需字符的零基偏移量,可以访问和修改字符串s中的字符,如
$str[42]
中所述。为此,请将字符串视为字符数组。要提取或替换多个字符时,可以使用函数
substr()
substr\u replace()

或者,如果您正在从文件中查找和读取字节,则可以使用

这不是字节数组,而是在文件句柄上迭代。SplFileInfo实现该接口

另一方面,还有

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

$data=file\u get\u contents(“/tmp/some\u file.txt”)

实现以下功能的最佳方法(不推荐使用count、sizeof、strlen或其他功能):
$counter=strlen($data);
对于($i=0;$i<$counter;++$i){
$char=数据[$i];
回显“字节$i:$char\n”;

}

无意义的微观优化。您的答案也应该是答案下方的注释。在所有的微优化中,这一项是最没有意义的。@ravelen即使对于包含数字1到1M的数组,使用
for
count
只需要大约0.8秒。对于1-10k,该值仅为0.002s。如果不是这样的话,它几乎无法测量。为了简单起见,我省略了这个优化。我认为这是一个打字错误。它必须是:
$char=$data[$i]
$MyArray = str_split($file);
$file = new SplFileObject('file.txt');
while (false !== ($char = $file->fgetc())) {
    echo "$char\n";
}