Browzer Posted February 27, 2007 Share Posted February 27, 2007 Hello, first poster here. I have to read bytes from a binary file. Often, I'm only reading 1 or 2 bytes at a time. The problem is that what I'm reading is being displayed as garbage. For example: $fh = fopen($filepath, 'rb') or exit("Can't open file"); $byte = fread($fh, 2) or exit("Can't read file"); printf("Byte = %u", $byte); The output is "Version = 0" (if I treat $byte as a string, the output is "Bytes = ?"). That is not correct. Here is the equivelant Java code reading from the same file: File f = new File(filepath); FileInputStream fis = new FileInputStream(f); DataInputStream dis = new DataInputStream(fis); short version = dis.readShort(); System.out.println("Version = " + version); The output is "Version = 2", which is correct. Any ideas? Thanks. Quote Link to comment Share on other sites More sharing options...
Orio Posted February 27, 2007 Share Posted February 27, 2007 Why are you using printf()? Try using echo instead: <?php $fh = fopen($filepath, 'rb') or exit("Can't open file"); $byte = fread($fh, 2) or exit("Can't read file"); echo "Byte = ".$byte; ?> Orio. Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.