php-src/ext/standard/file.h

145 lines
4.6 KiB
C
Raw Normal View History

/*
+----------------------------------------------------------------------+
2014-09-19 16:33:14 +00:00
| PHP Version 7 |
+----------------------------------------------------------------------+
2018-01-02 04:57:58 +00:00
| Copyright (c) 1997-2018 The PHP Group |
+----------------------------------------------------------------------+
2006-01-01 12:51:34 +00:00
| This source file is subject to version 3.01 of the PHP license, |
| that is bundled with this package in the file LICENSE, and is |
| available through the world-wide-web at the following url: |
2006-01-01 12:51:34 +00:00
| http://www.php.net/license/3_01.txt |
| If you did not receive a copy of the PHP license and are unable to |
| obtain it through the world-wide-web, please send a note to |
| license@php.net so we can mail you a copy immediately. |
+----------------------------------------------------------------------+
2002-02-28 08:29:35 +00:00
| Author: Rasmus Lerdorf <rasmus@lerdorf.on.ca> |
+----------------------------------------------------------------------+
*/
#ifndef FILE_H
#define FILE_H
2014-10-09 08:35:47 +00:00
#include "php_network.h"
PHP_MINIT_FUNCTION(file);
PHP_MSHUTDOWN_FUNCTION(file);
1999-06-15 21:51:00 +00:00
PHP_FUNCTION(tempnam);
PHP_NAMED_FUNCTION(php_if_tmpfile);
PHP_NAMED_FUNCTION(php_if_fopen);
2002-04-05 11:51:43 +00:00
PHPAPI PHP_FUNCTION(fclose);
1999-06-15 21:51:00 +00:00
PHP_FUNCTION(popen);
PHP_FUNCTION(pclose);
2002-04-05 11:51:43 +00:00
PHPAPI PHP_FUNCTION(feof);
PHPAPI PHP_FUNCTION(fread);
PHPAPI PHP_FUNCTION(fgetc);
PHPAPI PHP_FUNCTION(fgets);
2000-06-06 18:58:15 +00:00
PHP_FUNCTION(fscanf);
2002-04-05 11:51:43 +00:00
PHPAPI PHP_FUNCTION(fgetss);
1999-06-15 21:51:00 +00:00
PHP_FUNCTION(fgetcsv);
2004-09-26 21:55:22 +00:00
PHP_FUNCTION(fputcsv);
2002-04-05 11:51:43 +00:00
PHPAPI PHP_FUNCTION(fwrite);
PHPAPI PHP_FUNCTION(fflush);
PHPAPI PHP_FUNCTION(rewind);
PHPAPI PHP_FUNCTION(ftell);
PHPAPI PHP_FUNCTION(fseek);
1999-06-15 21:51:00 +00:00
PHP_FUNCTION(mkdir);
PHP_FUNCTION(rmdir);
2002-04-05 11:51:43 +00:00
PHPAPI PHP_FUNCTION(fpassthru);
1999-06-15 21:51:00 +00:00
PHP_FUNCTION(readfile);
PHP_FUNCTION(umask);
1999-06-15 21:51:00 +00:00
PHP_FUNCTION(rename);
PHP_FUNCTION(unlink);
PHP_FUNCTION(copy);
1999-06-15 21:51:00 +00:00
PHP_FUNCTION(file);
2002-03-16 16:52:24 +00:00
PHP_FUNCTION(file_get_contents);
2003-04-08 14:12:52 +00:00
PHP_FUNCTION(file_put_contents);
1999-06-15 21:51:00 +00:00
PHP_FUNCTION(get_meta_tags);
PHP_FUNCTION(flock);
PHP_FUNCTION(fd_set);
1999-11-24 03:47:58 +00:00
PHP_FUNCTION(fd_isset);
#if HAVE_REALPATH || defined(ZTS)
PHP_FUNCTION(realpath);
2007-01-10 14:40:06 +00:00
#endif
#ifdef HAVE_FNMATCH
PHP_FUNCTION(fnmatch);
#endif
PHP_NAMED_FUNCTION(php_if_ftruncate);
PHP_NAMED_FUNCTION(php_if_fstat);
2006-12-09 18:00:52 +00:00
PHP_FUNCTION(sys_get_temp_dir);
PHP_MINIT_FUNCTION(user_streams);
2014-12-13 22:06:14 +00:00
PHPAPI int php_le_stream_context(void);
PHPAPI int php_set_sock_blocking(php_socket_t socketd, int block);
PHPAPI int php_copy_file(const char *src, const char *dest);
PHPAPI int php_copy_file_ex(const char *src, const char *dest, int src_chk);
PHPAPI int php_copy_file_ctx(const char *src, const char *dest, int src_chk, php_stream_context *ctx);
PHPAPI int php_mkdir_ex(const char *dir, zend_long mode, int options);
PHPAPI int php_mkdir(const char *dir, zend_long mode);
PHPAPI void php_fgetcsv(php_stream *stream, char delimiter, char enclosure, char escape_char, size_t buf_len, char *buf, zval *return_value);
PHPAPI size_t php_fputcsv(php_stream *stream, zval *fields, char delimiter, char enclosure, char escape_char);
#define META_DEF_BUFSIZE 8192
#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
#define PHP_FILE_NO_DEFAULT_CONTEXT 16
typedef enum _php_meta_tags_token {
TOK_EOF = 0,
TOK_OPENTAG,
TOK_CLOSETAG,
TOK_SLASH,
TOK_EQUAL,
TOK_SPACE,
TOK_ID,
TOK_STRING,
TOK_OTHER
} php_meta_tags_token;
typedef struct _php_meta_tags_data {
2002-09-23 18:13:31 +00:00
php_stream *stream;
int ulc;
int lc;
char *input_buffer;
char *token_data;
int token_len;
int in_meta;
} php_meta_tags_data;
2014-12-13 22:06:14 +00:00
php_meta_tags_token php_next_meta_token(php_meta_tags_data *);
typedef struct {
int pclose_ret;
2002-09-23 18:13:31 +00:00
size_t def_chunk_size;
zend_long auto_detect_line_endings;
2014-08-25 17:24:55 +00:00
zend_long default_socket_timeout;
char *user_agent; /* for the http wrapper */
char *from_address; /* for the ftp and http wrappers */
const char *user_stream_current_filename; /* for simple recursion protection */
php_stream_context *default_context;
HashTable *stream_wrappers; /* per-request copy of url_stream_wrappers_hash */
HashTable *stream_filters; /* per-request copy of stream_filters_hash */
HashTable *wrapper_errors; /* key: wrapper address; value: linked list of char* */
int pclose_wait;
#if defined(HAVE_GETHOSTBYNAME_R)
struct hostent tmp_host_info;
char *tmp_host_buf;
size_t tmp_host_buf_len;
#endif
} php_file_globals;
#ifdef ZTS
#define FG(v) ZEND_TSRMG(file_globals_id, php_file_globals *, v)
2014-09-25 16:48:27 +00:00
extern PHPAPI int file_globals_id;
#else
#define FG(v) (file_globals.v)
extern PHPAPI php_file_globals file_globals;
#endif
#endif /* FILE_H */