summaryrefslogtreecommitdiff
path: root/ext/standard/file.c
diff options
context:
space:
mode:
authorHartmut Holzgraefe <hholzgra@php.net>2002-03-21 19:18:13 +0000
committerHartmut Holzgraefe <hholzgra@php.net>2002-03-21 19:18:13 +0000
commitb00d9a5b2cedfdb53cf44e70e3966b5cc710cae2 (patch)
treeba4c85ab00426294b7b4b9ebcfe36ba731cac14b /ext/standard/file.c
parenta974fbd9ae3c7c79d6fe4970672261744b9b90c0 (diff)
downloadphp-git-b00d9a5b2cedfdb53cf44e70e3966b5cc710cae2.tar.gz
added fnmatch() and glob() functions
could someone please check if i got the virtual dir stuff right?
Diffstat (limited to 'ext/standard/file.c')
-rw-r--r--ext/standard/file.c28
1 files changed, 28 insertions, 0 deletions
diff --git a/ext/standard/file.c b/ext/standard/file.c
index 801970b9fe..8e392e68cb 100644
--- a/ext/standard/file.c
+++ b/ext/standard/file.c
@@ -100,6 +100,10 @@ int file_globals_id;
php_file_globals file_globals;
#endif
+#ifdef HAVE_FNMATCH
+#include <fnmatch.h>
+#endif
+
/* }}} */
/* {{{ ZTS-stuff / Globals / Prototypes */
@@ -1999,6 +2003,30 @@ php_meta_tags_token php_next_meta_token(php_meta_tags_data *md TSRMLS_DC)
/* }}} */
+#ifdef HAVE_FNMATCH
+/* {{{ proto bool fnmatch(string pattern, string filename [, int flags])
+ Match filename against pattern */
+PHP_FUNCTION(fnmatch)
+{
+ char *pattern = NULL;
+ char *filename = NULL;
+ int argc = ZEND_NUM_ARGS();
+ int pattern_len;
+ int filename_len;
+ long flags=0;
+
+ if (zend_parse_parameters(argc TSRMLS_CC, "ss|l",
+ &pattern, &pattern_len,
+ &filename, &filename_len,
+ &flags)
+ == FAILURE)
+ return;
+
+ RETURN_BOOL( ! fnmatch( pattern, filename, flags ));
+}
+/* }}} */
+#endif
+
/*
* Local variables:
* tab-width: 4