unpack_offset.phpt 654 B

1234567891011121314151617181920212223242526272829
  1. --TEST--
  2. unpack() with offset
  3. --FILE--
  4. <?php
  5. $data = "pad" . pack("ll", 0x01020304, 0x05060708);
  6. $a = unpack("l2", $data, 3);
  7. printf("0x%08x 0x%08x\n", $a[1], $a[2]);
  8. printf("0x%08x 0x%08x\n",
  9. unpack("l", $data, 3)[1],
  10. unpack("@4/l", $data, 3)[1]);
  11. try {
  12. unpack("l", "foo", 10);
  13. } catch (ValueError $e) {
  14. echo $e->getMessage(), "\n";
  15. }
  16. try {
  17. unpack("l", "foo", -1);
  18. } catch (ValueError $e) {
  19. echo $e->getMessage(), "\n";
  20. }
  21. ?>
  22. --EXPECT--
  23. 0x01020304 0x05060708
  24. 0x01020304 0x05060708
  25. unpack(): Argument #3 ($offset) must be contained in argument #2 ($data)
  26. unpack(): Argument #3 ($offset) must be contained in argument #2 ($data)