function httprl_get_ranges in HTTP Parallel Request & Threading Library 7
Same name and namespace in other branches
- 6 httprl.module \httprl_get_ranges()
Parse a range header into start and end byte ranges.
Parameters
string $input: String in the form of bytes=0-1024 or bytes=0-1024,2048-4096
Return value
array Keyed arrays containing start and end values for the byte ranges. Empty array if the string can not be parsed.
1 call to httprl_get_ranges()
- httprl_send_request in ./httprl.module 
- Perform many HTTP requests.
File
- ./httprl.module, line 2023 
- HTTP Parallel Request Library module.
Code
function httprl_get_ranges($input) {
  $ranges = array();
  // Make sure the input string matches the correct format.
  $string = preg_match('/^bytes=((\\d*-\\d*,? ?)+)$/', $input, $matches) ? $matches[1] : FALSE;
  if (!empty($string)) {
    // Handle multiple ranges.
    foreach (explode(',', $string) as $range) {
      // Get the start and end byte values for this range.
      $values = explode('-', $range);
      if (count($values) != 2) {
        return FALSE;
      }
      $ranges[] = array(
        'start' => $values[0],
        'end' => $values[1],
      );
    }
  }
  return $ranges;
}