On 6/25/07, Tijnema <tijnema@xxxxxxxxx> wrote:
On 6/25/07, Eric Butera <eric.butera@xxxxxxxxx> wrote: > I've been trying to figure out a way to do this all day and I'm afraid > I might need a bit of help. Basically I am trying to port over > something from Java to PHP and I'm stuck on one particular piece of > code: > > if ((ba[i + 0] == (byte)0xa7) && (ba[i + 1] == (byte)0x51)) { > > The code is looping through a byte array and checking if the current > value matches "(byte)0xa7", etc. If there is a match, then it breaks > and returns the value of i. There are quite a few more values than > this in the conditional, but I figure this is enough to get the point > across. My problem is I'm not exactly sure what the value of > (byte)0xa7 is. > > I tried > $buffer = file_get_contents('Dining_Room.rti'); > $count = strlen($buffer); > for ($x=0; $x < $count; $x++) { > $char = substr($buffer, $x, 1); > echo $char; > if ($char == 0xa7 && $char == 0x51) { > return $x; > } > } > > but it never matches. Any pointers? > $char contains a token at the point, and you can't compare that with a hex value AFAIK. You could use ord[1] to get the ASCII value of $char, and compare it with the decimal value of 0xA7(167) and 0x51(81). Tijnema [1] http://www.php.net/ord -- Vote for PHP Color Coding in Gmail! -> http://gpcc.tijnema.info
Tijnema, I've tried building up a variable with ord called on each value as I append it. When this is built I cannot find the sequence 167 81, etc in it. I've also tried using bin2hex on the entire buffer and checking for a7 51 to no avail. -- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php