无法从文件PHP中读取字节

时间:2015-05-15 14:59:48

标签: php file-io byte

我有一个问题,即使我在fopen()中使用“rb”,它也不会读取字节。例如,在文件中是数字1234或字母。我和文件一样。

<?php

error_reporting(-1);

class Archivator 
{
    public function readFile($file)
    {
        $stream = fopen($file, "rb");
        while ($byteStr = fread($stream, 1)){
            var_dump($byteStr);
            echo $byteStr."\n";
        }
    }
}

$arch = new Archivator();
$arch->readFile('d:\\ok\\vas.txt');

$x=fgets(STDIN);

1 个答案:

答案 0 :(得分:0)

我不确定你在做什么,但是fread会将一个字符作为字符串读取。如果要显示其字节值(ASCII),可以使用ord并选择dechex

while ($char = fread($stream, 1)){
    printf("Byte value of '%s' is %d (%s hex)\n", $char, ord($char), dechex(ord($char)));
}

另外,当您使用fclose($stream)完成后,请不要忘记关闭文件。