summaryrefslogtreecommitdiff
path: root/ext/standard
diff options
context:
space:
mode:
authorHartmut Holzgraefe <hholzgra@php.net>2002-08-02 10:08:53 +0000
committerHartmut Holzgraefe <hholzgra@php.net>2002-08-02 10:08:53 +0000
commite5fa36eee4da397645498de55d957c4a438026e1 (patch)
tree1da299e347f1ca439416529d1f2bf5e5dde8a4e6 /ext/standard
parentc9107a668f0b738193ae064d748b3b2117c5fcd6 (diff)
downloadphp-git-e5fa36eee4da397645498de55d957c4a438026e1.tar.gz
added money_format() function
this is similar to C-libs strfmon(), using the same format string semantics but a different function prototype, so i decided to give it a more speaking name similar to number_format()
Diffstat (limited to 'ext/standard')
-rw-r--r--ext/standard/basic_functions.c4
-rw-r--r--ext/standard/config.m42
-rw-r--r--ext/standard/php_string.h4
-rw-r--r--ext/standard/string.c22
4 files changed, 31 insertions, 1 deletions
diff --git a/ext/standard/basic_functions.c b/ext/standard/basic_functions.c
index ebafd20e30..24df4bf049 100644
--- a/ext/standard/basic_functions.c
+++ b/ext/standard/basic_functions.c
@@ -321,6 +321,10 @@ function_entry basic_functions[] = {
PHP_FE(strcoll, NULL)
#endif
+#ifdef HAVE_STRFMON
+ PHP_FE(money_format, NULL)
+#endif
+
PHP_FE(substr, NULL)
PHP_FE(substr_replace, NULL)
PHP_FE(quotemeta, NULL)
diff --git a/ext/standard/config.m4 b/ext/standard/config.m4
index 89ddabeda1..8fc91f6bc2 100644
--- a/ext/standard/config.m4
+++ b/ext/standard/config.m4
@@ -227,6 +227,8 @@ AC_ARG_WITH(regex,
AC_CHECK_FUNCS(fnmatch glob)
+AC_CHECK_FUNCS(strfmon)
+
if test "$PHP_SAPI" = "cgi"; then
AC_DEFINE(ENABLE_CHROOT_FUNC, 1, [Whether to enable chroot() function])
fi
diff --git a/ext/standard/php_string.h b/ext/standard/php_string.h
index eb6330c34b..d63f91b254 100644
--- a/ext/standard/php_string.h
+++ b/ext/standard/php_string.h
@@ -85,7 +85,9 @@ PHP_FUNCTION(sscanf);
#ifdef HAVE_STRCOLL
PHP_FUNCTION(strcoll);
#endif
-
+#if HAVE_STRFMON
+PHP_FUNCTION(money_format);
+#endif
#if defined(HAVE_LOCALECONV) && defined(ZTS)
PHP_MINIT_FUNCTION(localeconv);
diff --git a/ext/standard/string.c b/ext/standard/string.c
index 499eed7ee4..0940eab539 100644
--- a/ext/standard/string.c
+++ b/ext/standard/string.c
@@ -3904,6 +3904,28 @@ PHP_FUNCTION(str_rot13)
/* }}} */
+#if HAVE_STRFMON
+/* {{{ proto string money_format(string format , float value)
+ Convert monetary value(s) to string */
+
+PHP_FUNCTION(money_format) {
+ int format_len, str_len = 1024;
+ char *format, *str = emalloc(str_len);
+ double value;
+
+ if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "sd",
+ &format, &format_len, &value) == FAILURE) {
+ return;
+ }
+
+ str_len = strfmon(str, str_len, format, value);
+
+ RETURN_STRINGL(erealloc(str, strlen), str_len, 0);
+}
+
+/* }}} */
+#endif
+
/*
* Local variables:
* tab-width: 4