| @@ 215-223 (lines=9) @@ | ||
| 212 | * @param bool $l Little-endian, defaults to false. |
|
| 213 | * @return string |
|
| 214 | */ |
|
| 215 | public static function getStrWord(&$p, $l = false) |
|
| 216 | { |
|
| 217 | $r = static::binarySubstr($p, 0, 2); |
|
| 218 | $p = static::binarySubstr($p, 2); |
|
| 219 | if ($l) { |
|
| 220 | $r = strrev($r); |
|
| 221 | } |
|
| 222 | return $r; |
|
| 223 | } |
|
| 224 | ||
| 225 | /** |
|
| 226 | * Get double word (4 bytes). |
|
| @@ 262-271 (lines=10) @@ | ||
| 259 | * @param bool $l Little-endian, defaults to false. |
|
| 260 | * @return string |
|
| 261 | */ |
|
| 262 | public static function getStrQWord(&$p, $l = false) |
|
| 263 | { |
|
| 264 | $r = static::binarySubstr($p, 0, 8); |
|
| 265 | if ($l) { |
|
| 266 | $r = strrev($r); |
|
| 267 | } |
|
| 268 | $p = static::binarySubstr($p, 8); |
|
| 269 | ||
| 270 | return $r; |
|
| 271 | } |
|
| 272 | ||
| 273 | /** |
|
| 274 | * Parse null-terminated string. |
|
| @@ 279-289 (lines=11) @@ | ||
| 276 | * @param &string $str |
|
| 277 | * @return string |
|
| 278 | */ |
|
| 279 | public static function getString(&$str) |
|
| 280 | { |
|
| 281 | $p = strpos($str, "\x00"); |
|
| 282 | if ($p === false) { |
|
| 283 | return ''; |
|
| 284 | } |
|
| 285 | $r = static::binarySubstr($str, 0, $p); |
|
| 286 | $str = static::binarySubstr($str, $p + 1); |
|
| 287 | ||
| 288 | return $r; |
|
| 289 | } |
|
| 290 | ||
| 291 | /** |
|
| 292 | * Parse length-value structure. |
|