繁体   English   中英

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

[英]Reading a File into a Byte Array (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()

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

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

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

在旁注中,也有

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

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

$MyArray = str_split($file);

太多的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"; }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM