]> granicus.if.org Git - php/commitdiff
Switch file_put_contents 'bool use_include_path' to 'int flags' to allow other option...
authorSara Golemon <pollita@php.net>
Tue, 8 Apr 2003 23:24:53 +0000 (23:24 +0000)
committerSara Golemon <pollita@php.net>
Tue, 8 Apr 2003 23:24:53 +0000 (23:24 +0000)
ext/standard/file.c
ext/standard/file.h

index 79777697605d08882062362a1f094a2fc46bc154..62757f4ed34c3645de311acd3b5490108cb1214f 100644 (file)
@@ -196,6 +196,7 @@ PHP_MINIT_FUNCTION(file)
        REGISTER_LONG_CONSTANT("FILE_USE_INCLUDE_PATH", PHP_FILE_USE_INCLUDE_PATH, CONST_CS | CONST_PERSISTENT);
        REGISTER_LONG_CONSTANT("FILE_IGNORE_NEW_LINES", PHP_FILE_IGNORE_NEW_LINES, CONST_CS | CONST_PERSISTENT);
        REGISTER_LONG_CONSTANT("FILE_SKIP_EMPTY_LINES", PHP_FILE_SKIP_EMPTY_LINES, CONST_CS | CONST_PERSISTENT);
+       REGISTER_LONG_CONSTANT("FILE_APPEND", PHP_FILE_APPEND, CONST_CS | CONST_PERSISTENT);
        
 #ifdef HAVE_FNMATCH
        REGISTER_LONG_CONSTANT("FNM_NOESCAPE", FNM_NOESCAPE, CONST_CS | CONST_PERSISTENT);
@@ -465,20 +466,19 @@ PHP_FUNCTION(file_get_contents)
 }
 /* }}} */
 
-/* {{{ proto string file_put_contents(string file, string data[, bool use_include_path[, resource context]])
+/* {{{ proto string file_put_contents(string file, string data[, int flags[, resource context]])
    Write/Create a file with contents data */
 PHP_FUNCTION(file_put_contents)
 {
        php_stream *stream;
        char *filename, *data;
        size_t filename_len, data_len;
-       int numbytes;
-       zend_bool use_include_path = 0;
+       int numbytes, flags = 0;
        zval *zcontext = NULL;
        php_stream_context *context = NULL;
        
-       if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "ss|br!", &filename, &filename_len, 
-                               &data, &data_len, &use_include_path, &zcontext) == FAILURE) {
+       if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "ss|lr!", &filename, &filename_len, 
+                               &data, &data_len, &flags, &zcontext) == FAILURE) {
                return;
        }
 
@@ -486,8 +486,8 @@ PHP_FUNCTION(file_put_contents)
                context = zend_fetch_resource(&zcontext TSRMLS_CC, -1, "Stream-Context", NULL, 1, php_le_stream_context());
        }
 
-       stream = php_stream_open_wrapper_ex(filename, "wb", 
-                       (use_include_path ? USE_PATH : 0) | ENFORCE_SAFE_MODE | REPORT_ERRORS, NULL, context);
+       stream = php_stream_open_wrapper_ex(filename, (flags & PHP_FILE_APPEND) ? "ab" : "wb", 
+                       ((flags & PHP_FILE_USE_INCLUDE_PATH) ? USE_PATH : 0) | ENFORCE_SAFE_MODE | REPORT_ERRORS, NULL, context);
        if (stream == NULL) {
                RETURN_FALSE;
        }
index 78c7d4261093fe75a9bd02f221fa5da7235c69ad..c797bd11fbaeda96ff853a30940c7608233af11a 100644 (file)
@@ -77,6 +77,7 @@ PHPAPI int php_copy_file(char *src, char *dest TSRMLS_DC);
 #define PHP_FILE_USE_INCLUDE_PATH 1
 #define PHP_FILE_IGNORE_NEW_LINES 2
 #define PHP_FILE_SKIP_EMPTY_LINES 4
+#define PHP_FILE_APPEND 8
 
 typedef enum _php_meta_tags_token {
        TOK_EOF = 0,