1 /* 2 +----------------------------------------------------------------------+ 3 | Copyright (c) The PHP Group | 4 +----------------------------------------------------------------------+ 5 | This source file is subject to version 3.01 of the PHP license, | 6 | that is bundled with this package in the file LICENSE, and is | 7 | available through the world-wide-web at the following url: | 8 | https://www.php.net/license/3_01.txt | 9 | If you did not receive a copy of the PHP license and are unable to | 10 | obtain it through the world-wide-web, please send a note to | 11 | license@php.net so we can mail you a copy immediately. | 12 +----------------------------------------------------------------------+ 13 | Author: Jani Lehtimäki <jkl@njet.net> | 14 +----------------------------------------------------------------------+ 15 */ 16 17 #ifndef PHP_VAR_H 18 #define PHP_VAR_H 19 20 #include "ext/standard/basic_functions.h" 21 #include "zend_smart_str_public.h" 22 23 PHP_MINIT_FUNCTION(var); 24 25 PHPAPI void php_var_dump(zval *struc, int level); 26 PHPAPI void php_var_export(zval *struc, int level); 27 PHPAPI void php_var_export_ex(zval *struc, int level, smart_str *buf); 28 29 PHPAPI void php_debug_zval_dump(zval *struc, int level); 30 31 typedef struct php_serialize_data *php_serialize_data_t; 32 typedef struct php_unserialize_data *php_unserialize_data_t; 33 34 PHPAPI void php_var_serialize(smart_str *buf, zval *struc, php_serialize_data_t *data); 35 PHPAPI int php_var_unserialize(zval *rval, const unsigned char **p, const unsigned char *max, php_unserialize_data_t *var_hash); 36 PHPAPI int php_var_unserialize_ref(zval *rval, const unsigned char **p, const unsigned char *max, php_unserialize_data_t *var_hash); 37 PHPAPI int php_var_unserialize_intern(zval *rval, const unsigned char **p, const unsigned char *max, php_unserialize_data_t *var_hash); 38 39 PHPAPI php_serialize_data_t php_var_serialize_init(void); 40 PHPAPI void php_var_serialize_destroy(php_serialize_data_t d); 41 PHPAPI php_unserialize_data_t php_var_unserialize_init(void); 42 PHPAPI void php_var_unserialize_destroy(php_unserialize_data_t d); 43 PHPAPI HashTable *php_var_unserialize_get_allowed_classes(php_unserialize_data_t d); 44 PHPAPI void php_var_unserialize_set_allowed_classes(php_unserialize_data_t d, HashTable *classes); 45 PHPAPI void php_var_unserialize_set_max_depth(php_unserialize_data_t d, zend_long max_depth); 46 PHPAPI zend_long php_var_unserialize_get_max_depth(php_unserialize_data_t d); 47 PHPAPI void php_var_unserialize_set_cur_depth(php_unserialize_data_t d, zend_long cur_depth); 48 PHPAPI zend_long php_var_unserialize_get_cur_depth(php_unserialize_data_t d); 49 50 #define PHP_VAR_SERIALIZE_INIT(d) \ 51 (d) = php_var_serialize_init() 52 53 #define PHP_VAR_SERIALIZE_DESTROY(d) \ 54 php_var_serialize_destroy(d) 55 56 #define PHP_VAR_UNSERIALIZE_INIT(d) \ 57 (d) = php_var_unserialize_init() 58 59 #define PHP_VAR_UNSERIALIZE_DESTROY(d) \ 60 php_var_unserialize_destroy(d) 61 62 PHPAPI void php_unserialize_with_options(zval *return_value, const char *buf, const size_t buf_len, HashTable *options, const char* function_name); 63 64 PHPAPI void var_replace(php_unserialize_data_t *var_hash, zval *ozval, zval *nzval); 65 PHPAPI void var_push_dtor(php_unserialize_data_t *var_hash, zval *val); 66 PHPAPI zval *var_tmp_var(php_unserialize_data_t *var_hashx); 67 PHPAPI void var_destroy(php_unserialize_data_t *var_hash); 68 69 #endif /* PHP_VAR_H */ 70