1 /* 2 +----------------------------------------------------------------------+ 3 | PHP Version 5 | 4 +----------------------------------------------------------------------+ 5 | Copyright (c) 1997-2016 The PHP Group | 6 +----------------------------------------------------------------------+ 7 | This source file is subject to version 3.01 of the PHP license, | 8 | that is bundled with this package in the file LICENSE, and is | 9 | available through the world-wide-web at the following url: | 10 | http://www.php.net/license/3_01.txt | 11 | If you did not receive a copy of the PHP license and are unable to | 12 | obtain it through the world-wide-web, please send a note to | 13 | license@php.net so we can mail you a copy immediately. | 14 +----------------------------------------------------------------------+ 15 | Author: Rasmus Lerdorf <rasmus@lerdorf.on.ca> | 16 +----------------------------------------------------------------------+ 17 */ 18 19 /* $Id$ */ 20 21 /* Synced with php 3.0 revision 1.30 1999-06-16 [ssb] */ 22 23 #ifndef FILE_H 24 #define FILE_H 25 26 PHP_MINIT_FUNCTION(file); 27 PHP_MSHUTDOWN_FUNCTION(file); 28 29 PHP_FUNCTION(tempnam); 30 PHP_NAMED_FUNCTION(php_if_tmpfile); 31 PHP_NAMED_FUNCTION(php_if_fopen); 32 PHPAPI PHP_FUNCTION(fclose); 33 PHP_FUNCTION(popen); 34 PHP_FUNCTION(pclose); 35 PHPAPI PHP_FUNCTION(feof); 36 PHPAPI PHP_FUNCTION(fread); 37 PHPAPI PHP_FUNCTION(fgetc); 38 PHPAPI PHP_FUNCTION(fgets); 39 PHP_FUNCTION(fscanf); 40 PHPAPI PHP_FUNCTION(fgetss); 41 PHP_FUNCTION(fgetcsv); 42 PHP_FUNCTION(fputcsv); 43 PHPAPI PHP_FUNCTION(fwrite); 44 PHPAPI PHP_FUNCTION(fflush); 45 PHPAPI PHP_FUNCTION(rewind); 46 PHPAPI PHP_FUNCTION(ftell); 47 PHPAPI PHP_FUNCTION(fseek); 48 PHP_FUNCTION(mkdir); 49 PHP_FUNCTION(rmdir); 50 PHPAPI PHP_FUNCTION(fpassthru); 51 PHP_FUNCTION(readfile); 52 PHP_FUNCTION(umask); 53 PHP_FUNCTION(rename); 54 PHP_FUNCTION(unlink); 55 PHP_FUNCTION(copy); 56 PHP_FUNCTION(file); 57 PHP_FUNCTION(file_get_contents); 58 PHP_FUNCTION(file_put_contents); 59 PHP_FUNCTION(get_meta_tags); 60 PHP_FUNCTION(flock); 61 PHP_FUNCTION(fd_set); 62 PHP_FUNCTION(fd_isset); 63 #if (!defined(__BEOS__) && !defined(NETWARE) && HAVE_REALPATH) || defined(ZTS) 64 PHP_FUNCTION(realpath); 65 #endif 66 #ifdef HAVE_FNMATCH 67 PHP_FUNCTION(fnmatch); 68 #endif 69 PHP_NAMED_FUNCTION(php_if_ftruncate); 70 PHP_NAMED_FUNCTION(php_if_fstat); 71 PHP_FUNCTION(sys_get_temp_dir); 72 73 PHP_MINIT_FUNCTION(user_streams); 74 75 PHPAPI int php_le_stream_context(TSRMLS_D); 76 PHPAPI int php_set_sock_blocking(int socketd, int block TSRMLS_DC); 77 PHPAPI int php_copy_file(const char *src, const char *dest TSRMLS_DC); 78 PHPAPI int php_copy_file_ex(const char *src, const char *dest, int src_chk TSRMLS_DC); 79 PHPAPI int php_copy_file_ctx(const char *src, const char *dest, int src_chk, php_stream_context *ctx TSRMLS_DC); 80 PHPAPI int php_mkdir_ex(const char *dir, long mode, int options TSRMLS_DC); 81 PHPAPI int php_mkdir(const char *dir, long mode TSRMLS_DC); 82 PHPAPI void php_fgetcsv(php_stream *stream, char delimiter, char enclosure, char escape_char, size_t buf_len, char *buf, zval *return_value TSRMLS_DC); 83 PHPAPI int php_fputcsv(php_stream *stream, zval *fields, char delimiter, char enclosure, char escape_char TSRMLS_DC); 84 85 #define META_DEF_BUFSIZE 8192 86 87 #define PHP_FILE_USE_INCLUDE_PATH 1 88 #define PHP_FILE_IGNORE_NEW_LINES 2 89 #define PHP_FILE_SKIP_EMPTY_LINES 4 90 #define PHP_FILE_APPEND 8 91 #define PHP_FILE_NO_DEFAULT_CONTEXT 16 92 93 typedef enum _php_meta_tags_token { 94 TOK_EOF = 0, 95 TOK_OPENTAG, 96 TOK_CLOSETAG, 97 TOK_SLASH, 98 TOK_EQUAL, 99 TOK_SPACE, 100 TOK_ID, 101 TOK_STRING, 102 TOK_OTHER 103 } php_meta_tags_token; 104 105 typedef struct _php_meta_tags_data { 106 php_stream *stream; 107 int ulc; 108 int lc; 109 char *input_buffer; 110 char *token_data; 111 int token_len; 112 int in_meta; 113 } php_meta_tags_data; 114 115 php_meta_tags_token php_next_meta_token(php_meta_tags_data * TSRMLS_DC); 116 117 typedef struct { 118 int pclose_ret; 119 size_t def_chunk_size; 120 long auto_detect_line_endings; 121 long default_socket_timeout; 122 char *user_agent; /* for the http wrapper */ 123 char *from_address; /* for the ftp and http wrappers */ 124 const char *user_stream_current_filename; /* for simple recursion protection */ 125 php_stream_context *default_context; 126 HashTable *stream_wrappers; /* per-request copy of url_stream_wrappers_hash */ 127 HashTable *stream_filters; /* per-request copy of stream_filters_hash */ 128 HashTable *wrapper_errors; /* key: wrapper address; value: linked list of char* */ 129 int pclose_wait; 130 } php_file_globals; 131 132 #ifdef ZTS 133 #define FG(v) TSRMG(file_globals_id, php_file_globals *, v) 134 extern PHPAPI int file_globals_id; 135 #else 136 #define FG(v) (file_globals.v) 137 extern PHPAPI php_file_globals file_globals; 138 #endif 139 140 141 #endif /* FILE_H */ 142 143