- Notifications
You must be signed in to change notification settings - Fork 7.8k
/
Copy pathphp_pcre.h
94 lines (76 loc) · 3.7 KB
/
php_pcre.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
/*
+----------------------------------------------------------------------+
| Copyright (c) The PHP Group |
+----------------------------------------------------------------------+
| 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: |
| https://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. |
+----------------------------------------------------------------------+
| Author: Andrei Zmievski <andrei@php.net> |
+----------------------------------------------------------------------+
*/
#ifndefPHP_PCRE_H
#definePHP_PCRE_H
#ifdefHAVE_BUNDLED_PCRE
#include"pcre2lib/pcre2.h"
#else
#include"pcre2.h"
#endif
#include<locale.h>
PHPAPIzend_string*php_pcre_replace(zend_string*regex, zend_string*subject_str, constchar*subject, size_tsubject_len, zend_string*replace_str, size_tlimit, size_t*replace_count);
PHPAPIpcre2_code*pcre_get_compiled_regex(zend_string*regex, uint32_t*capture_count);
externzend_module_entrypcre_module_entry;
#definepcre_module_ptr &pcre_module_entry
#include"php_version.h"
#definePHP_PCRE_VERSION PHP_VERSION
typedefstruct_pcre_cache_entrypcre_cache_entry;
typedefenum {
PHP_PCRE_NO_ERROR=0,
PHP_PCRE_INTERNAL_ERROR,
PHP_PCRE_BACKTRACK_LIMIT_ERROR,
PHP_PCRE_RECURSION_LIMIT_ERROR,
PHP_PCRE_BAD_UTF8_ERROR,
PHP_PCRE_BAD_UTF8_OFFSET_ERROR,
PHP_PCRE_JIT_STACKLIMIT_ERROR
} php_pcre_error_code;
PHPAPIpcre_cache_entry*pcre_get_compiled_regex_cache(zend_string*regex);
PHPAPIpcre_cache_entry*pcre_get_compiled_regex_cache_ex(zend_string*regex, boollocale_aware);
PHPAPIvoidphp_pcre_match_impl(pcre_cache_entry*pce, zend_string*subject_str, zval*return_value,
zval*subpats, boolglobal, zend_longflags, zend_off_tstart_offset);
PHPAPIzend_string*php_pcre_replace_impl(pcre_cache_entry*pce, zend_string*subject_str, constchar*subject, size_tsubject_len, zend_string*replace_str,
size_tlimit, size_t*replace_count);
PHPAPIvoidphp_pcre_split_impl( pcre_cache_entry*pce, zend_string*subject_str, zval*return_value,
zend_longlimit_val, zend_longflags);
PHPAPIvoidphp_pcre_grep_impl( pcre_cache_entry*pce, zval*input, zval*return_value,
zend_longflags);
PHPAPIpcre2_match_context*php_pcre_mctx(void);
PHPAPIpcre2_general_context*php_pcre_gctx(void);
PHPAPIpcre2_compile_context*php_pcre_cctx(void);
PHPAPIvoidphp_pcre_pce_incref(pcre_cache_entry*);
PHPAPIvoidphp_pcre_pce_decref(pcre_cache_entry*);
PHPAPIpcre2_code*php_pcre_pce_re(pcre_cache_entry*);
/* capture_count can be ignored, re is required. */
PHPAPIpcre2_match_data*php_pcre_create_match_data(uint32_t, pcre2_code*);
PHPAPIvoidphp_pcre_free_match_data(pcre2_match_data*);
ZEND_BEGIN_MODULE_GLOBALS(pcre)
HashTablepcre_cache;
zend_longbacktrack_limit;
zend_longrecursion_limit;
#ifdefHAVE_PCRE_JIT_SUPPORT
booljit;
#endif
php_pcre_error_codeerror_code;
/* Used for unmatched subpatterns in OFFSET_CAPTURE mode */
zvalunmatched_null_pair;
zvalunmatched_empty_pair;
/* General context using per-request allocator (ZMM). */
pcre2_general_context*gctx_zmm;
ZEND_END_MODULE_GLOBALS(pcre)
PHPAPIZEND_EXTERN_MODULE_GLOBALS(pcre)
#definePCRE_G(v) ZEND_MODULE_GLOBALS_ACCESSOR(pcre, v)
#definephpext_pcre_ptrpcre_module_ptr
#endif/* PHP_PCRE_H */