From: Sara Golemon Date: Fri, 3 Jan 2003 08:02:36 +0000 (+0000) Subject: Added stream_get_wrappers() X-Git-Tag: PHP_5_0_dev_before_13561_fix~508 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=7b3727238172e8e137216a7b5de92df23a581a9a;p=php Added stream_get_wrappers() --- diff --git a/ext/standard/basic_functions.c b/ext/standard/basic_functions.c index f23eb6b5ba..2344eb7734 100644 --- a/ext/standard/basic_functions.c +++ b/ext/standard/basic_functions.c @@ -670,6 +670,7 @@ function_entry basic_functions[] = { PHP_FE(stream_get_meta_data, NULL) PHP_FE(stream_register_wrapper, NULL) + PHP_FE(stream_get_wrappers, NULL) #if HAVE_SYS_TIME_H || defined(PHP_WIN32) PHP_FE(stream_set_timeout, NULL) diff --git a/ext/standard/file.c b/ext/standard/file.c index 6013577909..cd1042a56b 100644 --- a/ext/standard/file.c +++ b/ext/standard/file.c @@ -626,6 +626,31 @@ PHP_FUNCTION(stream_get_meta_data) } /* }}} */ +/* {{{ proto array stream_get_wrappers() + Retrieves list of registered stream wrappers */ +PHP_FUNCTION(stream_get_wrappers) +{ + HashTable *url_stream_wrappers_hash; + char *stream_protocol; + int stream_protocol_len = 0; + + if (ZEND_NUM_ARGS() != 0) { + WRONG_PARAM_COUNT; + } + + if (url_stream_wrappers_hash = php_stream_get_url_stream_wrappers_hash()) { + array_init(return_value); + for(zend_hash_internal_pointer_reset(url_stream_wrappers_hash); + zend_hash_get_current_key_ex(url_stream_wrappers_hash, &stream_protocol, &stream_protocol_len, NULL, 0, NULL) == HASH_KEY_IS_STRING; + zend_hash_move_forward(url_stream_wrappers_hash)) + add_next_index_string(return_value,stream_protocol,1); + } else { + RETURN_FALSE; + } + +} +/* }}} */ + /* {{{ stream_select related functions */ static int stream_array_to_fd_set(zval *stream_array, fd_set *fds, int *max_fd TSRMLS_DC) { diff --git a/ext/standard/file.h b/ext/standard/file.h index 1458cf5edd..28fca3b304 100644 --- a/ext/standard/file.h +++ b/ext/standard/file.h @@ -59,6 +59,7 @@ PHP_FUNCTION(stream_set_blocking); PHP_FUNCTION(stream_select); PHP_FUNCTION(stream_set_timeout); PHP_FUNCTION(stream_set_write_buffer); +PHP_FUNCTION(stream_get_wrappers); PHP_FUNCTION(get_meta_tags); PHP_FUNCTION(flock); PHP_FUNCTION(fd_set);