| 1 file_example_session_streams.inc | protected &FileExampleSessionStreamWrapper::uri_to_session_key($uri, $create = TRUE) | 
        
Return a reference to the correct $_SESSION key.
Parameters
string $uri: The uri: session://something
bool $create: If TRUE, create the key
Return value
array|bool: A reference to the array at the end of the key-path, or FALSE if the path doesn't map to a key-path (and $create is FALSE).
File
- modules/
examples/ file_example/ file_example_session_streams.inc, line 256  - Provides a demonstration session:// stream-wrapper.
 
Class
- FileExampleSessionStreamWrapper
 - Example stream wrapper class to handle session:// streams.
 
Code
protected function &uri_to_session_key($uri, $create = TRUE) {
  // Since our uri_to_session_key() method returns a reference, we
  // have to set up a failure flag variable.
  $fail = FALSE;
  $path = $this->getLocalPath($uri);
  $path_components = explode('/', $path);
  // Set up a reference to the root session:// 'directory.'
  $var = &$_SESSION['file_example'];
  // Handle case of just session://.
  if (count($path_components) < 1) {
    return $var;
  }
  // Walk through the path components and create keys in $_SESSION,
  // unless we're told not to create them.
  foreach ($path_components as $component) {
    if ($create || isset($var[$component])) {
      $var = &$var[$component];
    }
    else {
      // This path doesn't exist as keys, either because the
      // key doesn't exist, or because we're told not to create it.
      return $fail;
    }
  }
  return $var;
}