Coverage Report

Created: 2022-10-14 11:20

/src/php-src/ext/standard/file.h
Line
Count
Source (jump to first uncovered line)
1
/*
2
   +----------------------------------------------------------------------+
3
   | Copyright (c) The PHP Group                                          |
4
   +----------------------------------------------------------------------+
5
   | This source file is subject to version 3.01 of the PHP license,      |
6
   | that is bundled with this package in the file LICENSE, and is        |
7
   | available through the world-wide-web at the following url:           |
8
   | http://www.php.net/license/3_01.txt                                  |
9
   | If you did not receive a copy of the PHP license and are unable to   |
10
   | obtain it through the world-wide-web, please send a note to          |
11
   | license@php.net so we can mail you a copy immediately.               |
12
   +----------------------------------------------------------------------+
13
   | Author: Rasmus Lerdorf <rasmus@lerdorf.on.ca>                        |
14
   +----------------------------------------------------------------------+
15
*/
16
17
#ifndef FILE_H
18
#define FILE_H
19
20
#include "php_network.h"
21
22
PHP_MINIT_FUNCTION(file);
23
PHP_MSHUTDOWN_FUNCTION(file);
24
25
PHPAPI PHP_FUNCTION(fclose);
26
PHPAPI PHP_FUNCTION(feof);
27
PHPAPI PHP_FUNCTION(fread);
28
PHPAPI PHP_FUNCTION(fgetc);
29
PHPAPI PHP_FUNCTION(fgets);
30
PHPAPI PHP_FUNCTION(fwrite);
31
PHPAPI PHP_FUNCTION(fflush);
32
PHPAPI PHP_FUNCTION(rewind);
33
PHPAPI PHP_FUNCTION(ftell);
34
PHPAPI PHP_FUNCTION(fseek);
35
PHPAPI PHP_FUNCTION(fpassthru);
36
37
PHP_MINIT_FUNCTION(user_streams);
38
39
PHPAPI int php_le_stream_context(void);
40
PHPAPI int php_set_sock_blocking(php_socket_t socketd, int block);
41
PHPAPI int php_copy_file(const char *src, const char *dest);
42
PHPAPI int php_copy_file_ex(const char *src, const char *dest, int src_chk);
43
PHPAPI int php_copy_file_ctx(const char *src, const char *dest, int src_chk, php_stream_context *ctx);
44
PHPAPI int php_mkdir_ex(const char *dir, zend_long mode, int options);
45
PHPAPI int php_mkdir(const char *dir, zend_long mode);
46
47
0
#define PHP_CSV_NO_ESCAPE EOF
48
PHPAPI void php_fgetcsv(php_stream *stream, char delimiter, char enclosure, int escape_char, size_t buf_len, char *buf, zval *return_value);
49
PHPAPI ssize_t php_fputcsv(php_stream *stream, zval *fields, char delimiter, char enclosure, int escape_char);
50
51
0
#define META_DEF_BUFSIZE 8192
52
53
0
#define PHP_FILE_USE_INCLUDE_PATH 1
54
0
#define PHP_FILE_IGNORE_NEW_LINES 2
55
0
#define PHP_FILE_SKIP_EMPTY_LINES 4
56
0
#define PHP_FILE_APPEND 8
57
0
#define PHP_FILE_NO_DEFAULT_CONTEXT 16
58
59
typedef enum _php_meta_tags_token {
60
  TOK_EOF = 0,
61
  TOK_OPENTAG,
62
  TOK_CLOSETAG,
63
  TOK_SLASH,
64
  TOK_EQUAL,
65
  TOK_SPACE,
66
  TOK_ID,
67
  TOK_STRING,
68
  TOK_OTHER
69
} php_meta_tags_token;
70
71
typedef struct _php_meta_tags_data {
72
  php_stream *stream;
73
  int ulc;
74
  int lc;
75
  char *input_buffer;
76
  char *token_data;
77
  int token_len;
78
  int in_meta;
79
} php_meta_tags_data;
80
81
php_meta_tags_token php_next_meta_token(php_meta_tags_data *);
82
83
typedef struct {
84
  int pclose_ret;
85
  size_t def_chunk_size;
86
  zend_bool auto_detect_line_endings;
87
  zend_long default_socket_timeout;
88
  char *user_agent; /* for the http wrapper */
89
  char *from_address; /* for the ftp and http wrappers */
90
  const char *user_stream_current_filename; /* for simple recursion protection */
91
  php_stream_context *default_context;
92
  HashTable *stream_wrappers;     /* per-request copy of url_stream_wrappers_hash */
93
  HashTable *stream_filters;      /* per-request copy of stream_filters_hash */
94
  HashTable *wrapper_errors;      /* key: wrapper address; value: linked list of char* */
95
  int pclose_wait;
96
#if defined(HAVE_GETHOSTBYNAME_R)
97
  struct hostent tmp_host_info;
98
  char *tmp_host_buf;
99
  size_t tmp_host_buf_len;
100
#endif
101
} php_file_globals;
102
103
#ifdef ZTS
104
#define FG(v) ZEND_TSRMG(file_globals_id, php_file_globals *, v)
105
extern PHPAPI int file_globals_id;
106
#else
107
2.30M
#define FG(v) (file_globals.v)
108
extern PHPAPI php_file_globals file_globals;
109
#endif
110
111
112
#endif /* FILE_H */