|
version 1.1, 2012/02/21 23:48:02
|
version 1.1.1.2, 2012/05/29 12:34:43
|
|
Line 1283 PHPAPI int php_getimagetype(php_stream * stream, char
|
Line 1283 PHPAPI int php_getimagetype(php_stream * stream, char
|
| } |
} |
| /* }}} */ |
/* }}} */ |
| |
|
| /* {{{ proto array getimagesize(string imagefile [, array info]) | static void php_getimagesize_from_stream(php_stream *stream, zval **info, INTERNAL_FUNCTION_PARAMETERS) /* {{{ */ |
| Get the size of an image as 4-element array */ | |
| PHP_FUNCTION(getimagesize) | |
| { |
{ |
| zval **info = NULL; | char *temp; |
| char *arg1, *temp; | int itype = 0; |
| int arg1_len, itype = 0, argc = ZEND_NUM_ARGS(); | |
| struct gfxinfo *result = NULL; |
struct gfxinfo *result = NULL; |
| php_stream * stream = NULL; |
|
| |
|
| if (zend_parse_parameters(argc TSRMLS_CC, "s|Z", &arg1, &arg1_len, &info) == FAILURE) { |
|
| return; |
|
| } |
|
| |
|
| if (argc == 2) { |
|
| zval_dtor(*info); |
|
| array_init(*info); |
|
| } |
|
| |
|
| stream = php_stream_open_wrapper(arg1, "rb", STREAM_MUST_SEEK|REPORT_ERRORS|IGNORE_PATH|ENFORCE_SAFE_MODE, NULL); |
|
| |
|
| if (!stream) { |
if (!stream) { |
| RETURN_FALSE; |
RETURN_FALSE; |
| } |
} |
|
Line 1364 PHP_FUNCTION(getimagesize)
|
Line 1349 PHP_FUNCTION(getimagesize)
|
| break; |
break; |
| } |
} |
| |
|
| php_stream_close(stream); |
|
| |
|
| if (result) { |
if (result) { |
| array_init(return_value); |
array_init(return_value); |
| add_index_long(return_value, 0, result->width); |
add_index_long(return_value, 0, result->width); |
|
Line 1387 PHP_FUNCTION(getimagesize)
|
Line 1370 PHP_FUNCTION(getimagesize)
|
| } |
} |
| } |
} |
| /* }}} */ |
/* }}} */ |
| |
|
| |
#define FROM_DATA 0 |
| |
#define FROM_PATH 1 |
| |
|
| |
static void php_getimagesize_from_any(INTERNAL_FUNCTION_PARAMETERS, int mode) { /* {{{ */ |
| |
zval **info = NULL; |
| |
php_stream *stream = NULL; |
| |
char *input; |
| |
int input_len; |
| |
const int argc = ZEND_NUM_ARGS(); |
| |
|
| |
if (zend_parse_parameters(argc TSRMLS_CC, "s|Z", &input, &input_len, &info) == FAILURE) { |
| |
return; |
| |
} |
| |
|
| |
if (argc == 2) { |
| |
zval_dtor(*info); |
| |
array_init(*info); |
| |
} |
| |
|
| |
|
| |
if (mode == FROM_PATH) { |
| |
stream = php_stream_open_wrapper(input, "rb", STREAM_MUST_SEEK|REPORT_ERRORS|IGNORE_PATH, NULL); |
| |
} else { |
| |
stream = php_stream_memory_open(TEMP_STREAM_READONLY, input, input_len); |
| |
} |
| |
|
| |
if (!stream) { |
| |
RETURN_FALSE; |
| |
} |
| |
|
| |
php_getimagesize_from_stream(stream, info, INTERNAL_FUNCTION_PARAM_PASSTHRU); |
| |
php_stream_close(stream); |
| |
} |
| |
/* }}} */ |
| |
|
| |
/* {{{ proto array getimagesize(string imagefile [, array info]) |
| |
Get the size of an image as 4-element array */ |
| |
PHP_FUNCTION(getimagesize) |
| |
{ |
| |
php_getimagesize_from_any(INTERNAL_FUNCTION_PARAM_PASSTHRU, FROM_PATH); |
| |
} |
| |
/* }}} */ |
| |
|
| |
/* {{{ proto array getimagesizefromstring(string data [, array info]) |
| |
Get the size of an image as 4-element array */ |
| |
PHP_FUNCTION(getimagesizefromstring) |
| |
{ |
| |
php_getimagesize_from_any(INTERNAL_FUNCTION_PARAM_PASSTHRU, FROM_DATA); |
| |
} |
| |
|
| /* |
/* |
| * Local variables: |
* Local variables: |