$this->unwrap(); switch ($option) { case STREAM_META_TOUCH: if (empty($value)) { $result = touch($path); } else { $result = touch($path, $value[0], $value[1]); } break; case STREAM_META_OWNER_NAME: case STREAM_META_OWNER: $result = chown($path, $value); break; case STREAM_META_GROUP_NAME: case STREAM_META_GROUP: $result = chgrp($path, $value); break; case STREAM_META_ACCESS: $result = chmod($path, $value); break; } $this->wrap(); return $result; } public function stream_truncate($new_size) { return ftruncate($this->resource, $new_size); } } Stream::wrap();