xref: /PHP-5.5/ext/standard/url_scanner_ex.h (revision 73c1be26)
1 /*
2   +----------------------------------------------------------------------+
3   | PHP Version 5                                                        |
4   +----------------------------------------------------------------------+
5   | Copyright (c) 1997-2015 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: Sascha Schumann <sascha@schumann.cx>                         |
16   +----------------------------------------------------------------------+
17 */
18 
19 /* $Id$ */
20 
21 #ifndef URL_SCANNER_EX_H
22 #define URL_SCANNER_EX_H
23 
24 PHP_MINIT_FUNCTION(url_scanner_ex);
25 PHP_MSHUTDOWN_FUNCTION(url_scanner_ex);
26 
27 PHP_RINIT_FUNCTION(url_scanner_ex);
28 PHP_RSHUTDOWN_FUNCTION(url_scanner_ex);
29 
30 PHPAPI char *php_url_scanner_adapt_single_url(const char *url, size_t urllen, const char *name, const char *value, size_t *newlen TSRMLS_DC);
31 PHPAPI int php_url_scanner_add_var(char *name, int name_len, char *value, int value_len, int urlencode TSRMLS_DC);
32 PHPAPI int php_url_scanner_reset_vars(TSRMLS_D);
33 
34 #include "php_smart_str_public.h"
35 
36 typedef struct {
37 	/* Used by the mainloop of the scanner */
38 	smart_str tag; /* read only */
39 	smart_str arg; /* read only */
40 	smart_str val; /* read only */
41 	smart_str buf;
42 
43 	/* The result buffer */
44 	smart_str result;
45 
46 	/* The data which is appended to each relative URL/FORM */
47 	smart_str form_app, url_app;
48 
49 	int active;
50 
51 	char *lookup_data;
52 	int state;
53 
54 	/* Everything above is zeroed in RINIT */
55 	HashTable *tags;
56 } url_adapt_state_ex_t;
57 
58 #endif
59