summaryrefslogtreecommitdiff
path: root/ext/standard/var.c
diff options
context:
space:
mode:
authorDerick Rethans <derick@php.net>2007-12-18 10:53:39 +0000
committerDerick Rethans <derick@php.net>2007-12-18 10:53:39 +0000
commit9541a66cb8182deb3b6f2c44375aae824bf2a019 (patch)
tree837aa1b2b9bbb9b37ae8c54ed8e42658a024b040 /ext/standard/var.c
parent31fb02db2e0e57249302e481638f94a47e815dd0 (diff)
downloadphp-git-9541a66cb8182deb3b6f2c44375aae824bf2a019.tar.gz
- MFH: Fixed var_export() for array keys
- MFH: Fixed broken explode() test
Diffstat (limited to 'ext/standard/var.c')
-rw-r--r--ext/standard/var.c8
1 files changed, 5 insertions, 3 deletions
diff --git a/ext/standard/var.c b/ext/standard/var.c
index c416e8af98..6a3f1290a0 100644
--- a/ext/standard/var.c
+++ b/ext/standard/var.c
@@ -353,13 +353,15 @@ static int php_array_element_export(zval **zv, int num_args, va_list args, zend_
if (hash_key->nKeyLength == 0) { /* numeric key */
php_printf("%*c%ld => ", level + 1, ' ', hash_key->h);
} else { /* string key */
- char *key;
- int key_len;
+ char *key, *tmp_str;
+ int key_len, tmp_len;
key = php_addcslashes(hash_key->arKey, hash_key->nKeyLength - 1, &key_len, 0, "'\\", 2 TSRMLS_CC);
+ tmp_str = php_str_to_str_ex(key, key_len, "\0", 1, "' . \"\\0\" . '", 12, &tmp_len, 0, NULL);
php_printf("%*c'", level + 1, ' ');
- PHPWRITE(key, key_len);
+ PHPWRITE(tmp_str, tmp_len);
php_printf("' => ");
efree(key);
+ efree(tmp_str);
}
php_var_export(zv, level + 2 TSRMLS_CC);
PUTS (",\n");