2000-12-18 19:23:50 +00:00
|
|
|
/*
|
1999-04-17 00:37:12 +00:00
|
|
|
+----------------------------------------------------------------------+
|
2004-01-08 17:33:29 +00:00
|
|
|
| PHP Version 5 |
|
1999-04-17 00:37:12 +00:00
|
|
|
+----------------------------------------------------------------------+
|
2007-01-01 09:36:18 +00:00
|
|
|
| Copyright (c) 1997-2007 The PHP Group |
|
1999-04-17 00:37:12 +00:00
|
|
|
+----------------------------------------------------------------------+
|
2006-01-01 12:51:34 +00:00
|
|
|
| This source file is subject to version 3.01 of the PHP license, |
|
2000-07-24 01:40:02 +00:00
|
|
|
| that is bundled with this package in the file LICENSE, and is |
|
2003-06-10 20:04:29 +00:00
|
|
|
| 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 |
|
2000-07-24 01:40:02 +00:00
|
|
|
| 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. |
|
1999-04-17 00:37:12 +00:00
|
|
|
+----------------------------------------------------------------------+
|
|
|
|
| Authors: Andi Gutmans <andi@zend.com> |
|
|
|
|
| Zeev Suraski <zeev@zend.com> |
|
|
|
|
+----------------------------------------------------------------------+
|
2000-07-24 01:40:02 +00:00
|
|
|
*/
|
1999-04-17 00:37:12 +00:00
|
|
|
|
|
|
|
/* $Id$ */
|
|
|
|
|
2000-07-02 23:46:51 +00:00
|
|
|
#ifndef BASIC_FUNCTIONS_H
|
|
|
|
#define BASIC_FUNCTIONS_H
|
1999-04-17 00:37:12 +00:00
|
|
|
|
1999-12-12 16:48:54 +00:00
|
|
|
#include <sys/stat.h>
|
|
|
|
|
2003-10-04 02:51:19 +00:00
|
|
|
#ifdef HAVE_WCHAR_H
|
|
|
|
#include <wchar.h>
|
|
|
|
#endif
|
|
|
|
|
2003-11-07 09:26:18 +00:00
|
|
|
#include "php_filestat.h"
|
|
|
|
|
1999-04-17 00:37:12 +00:00
|
|
|
#include "zend_highlight.h"
|
|
|
|
|
2001-08-25 16:09:23 +00:00
|
|
|
#include "url_scanner.h"
|
|
|
|
#include "url_scanner_ex.h"
|
2000-08-01 07:45:14 +00:00
|
|
|
|
1999-12-17 20:55:31 +00:00
|
|
|
extern zend_module_entry basic_functions_module;
|
1999-04-17 00:37:12 +00:00
|
|
|
#define basic_functions_module_ptr &basic_functions_module
|
|
|
|
|
1999-07-26 20:09:08 +00:00
|
|
|
PHP_MINIT_FUNCTION(basic);
|
|
|
|
PHP_MSHUTDOWN_FUNCTION(basic);
|
|
|
|
PHP_RINIT_FUNCTION(basic);
|
|
|
|
PHP_RSHUTDOWN_FUNCTION(basic);
|
2000-03-06 20:37:11 +00:00
|
|
|
PHP_MINFO_FUNCTION(basic);
|
1999-07-26 20:09:08 +00:00
|
|
|
|
2000-11-24 21:05:25 +00:00
|
|
|
PHP_FUNCTION(constant);
|
1999-05-16 11:19:26 +00:00
|
|
|
PHP_FUNCTION(sleep);
|
|
|
|
PHP_FUNCTION(usleep);
|
2003-11-12 23:43:46 +00:00
|
|
|
#if HAVE_NANOSLEEP
|
2003-11-14 22:55:54 +00:00
|
|
|
PHP_FUNCTION(time_nanosleep);
|
2005-04-10 16:25:11 +00:00
|
|
|
PHP_FUNCTION(time_sleep_until);
|
2003-11-12 23:43:46 +00:00
|
|
|
#endif
|
1999-05-16 11:19:26 +00:00
|
|
|
PHP_FUNCTION(flush);
|
2004-08-07 04:50:24 +00:00
|
|
|
#ifdef HAVE_INET_NTOP
|
2004-08-07 15:59:59 +00:00
|
|
|
PHP_NAMED_FUNCTION(php_inet_ntop);
|
2004-08-07 04:50:24 +00:00
|
|
|
#endif
|
|
|
|
#ifdef HAVE_INET_PTON
|
2004-08-07 15:59:59 +00:00
|
|
|
PHP_NAMED_FUNCTION(php_inet_pton);
|
2004-08-07 04:50:24 +00:00
|
|
|
#endif
|
2000-03-04 17:28:16 +00:00
|
|
|
PHP_FUNCTION(ip2long);
|
|
|
|
PHP_FUNCTION(long2ip);
|
1999-04-17 00:37:12 +00:00
|
|
|
|
|
|
|
/* system functions */
|
1999-05-16 11:19:26 +00:00
|
|
|
PHP_FUNCTION(getenv);
|
|
|
|
PHP_FUNCTION(putenv);
|
1999-04-17 00:37:12 +00:00
|
|
|
|
2002-09-30 03:02:52 +00:00
|
|
|
PHP_FUNCTION(getopt);
|
|
|
|
|
1999-05-16 11:19:26 +00:00
|
|
|
PHP_FUNCTION(get_current_user);
|
|
|
|
PHP_FUNCTION(set_time_limit);
|
1999-04-17 00:37:12 +00:00
|
|
|
|
1999-05-16 11:19:26 +00:00
|
|
|
PHP_FUNCTION(get_cfg_var);
|
|
|
|
PHP_FUNCTION(set_magic_quotes_runtime);
|
|
|
|
PHP_FUNCTION(get_magic_quotes_runtime);
|
|
|
|
PHP_FUNCTION(get_magic_quotes_gpc);
|
1999-04-17 00:37:12 +00:00
|
|
|
|
2001-08-08 20:05:37 +00:00
|
|
|
PHP_FUNCTION(import_request_variables);
|
1999-04-17 00:37:12 +00:00
|
|
|
|
1999-05-16 11:19:26 +00:00
|
|
|
PHP_FUNCTION(error_log);
|
2006-07-19 12:25:46 +00:00
|
|
|
PHP_FUNCTION(error_get_last);
|
1999-04-17 00:37:12 +00:00
|
|
|
|
1999-05-16 11:19:26 +00:00
|
|
|
PHP_FUNCTION(call_user_func);
|
2000-11-24 21:05:25 +00:00
|
|
|
PHP_FUNCTION(call_user_func_array);
|
1999-05-16 11:19:26 +00:00
|
|
|
PHP_FUNCTION(call_user_method);
|
2000-12-08 14:37:49 +00:00
|
|
|
PHP_FUNCTION(call_user_method_array);
|
1999-04-17 00:37:12 +00:00
|
|
|
|
|
|
|
PHP_FUNCTION(register_shutdown_function);
|
|
|
|
PHP_FUNCTION(highlight_file);
|
|
|
|
PHP_FUNCTION(highlight_string);
|
2003-11-24 01:17:27 +00:00
|
|
|
PHP_FUNCTION(php_strip_whitespace);
|
1999-04-26 14:00:49 +00:00
|
|
|
ZEND_API void php_get_highlight_struct(zend_syntax_highlighter_ini *syntax_highlighter_ini);
|
1999-04-17 00:37:12 +00:00
|
|
|
|
|
|
|
PHP_FUNCTION(ini_get);
|
2001-08-30 17:47:04 +00:00
|
|
|
PHP_FUNCTION(ini_get_all);
|
2000-02-26 14:53:18 +00:00
|
|
|
PHP_FUNCTION(ini_set);
|
1999-04-17 00:37:12 +00:00
|
|
|
PHP_FUNCTION(ini_restore);
|
2002-11-05 06:05:48 +00:00
|
|
|
PHP_FUNCTION(get_include_path);
|
|
|
|
PHP_FUNCTION(set_include_path);
|
|
|
|
PHP_FUNCTION(restore_include_path);
|
1999-04-17 00:37:12 +00:00
|
|
|
|
|
|
|
PHP_FUNCTION(print_r);
|
2003-01-09 17:29:31 +00:00
|
|
|
PHP_FUNCTION(fprintf);
|
|
|
|
PHP_FUNCTION(vfprintf);
|
1999-04-17 00:37:12 +00:00
|
|
|
|
1999-09-04 21:10:39 +00:00
|
|
|
PHP_FUNCTION(connection_aborted);
|
|
|
|
PHP_FUNCTION(connection_status);
|
|
|
|
PHP_FUNCTION(ignore_user_abort);
|
|
|
|
|
1999-11-01 01:07:51 +00:00
|
|
|
PHP_FUNCTION(getservbyname);
|
|
|
|
PHP_FUNCTION(getservbyport);
|
1999-11-02 03:47:09 +00:00
|
|
|
PHP_FUNCTION(getprotobyname);
|
|
|
|
PHP_FUNCTION(getprotobynumber);
|
1999-11-01 01:07:51 +00:00
|
|
|
|
2000-06-21 22:51:29 +00:00
|
|
|
PHP_NAMED_FUNCTION(php_if_crc32);
|
|
|
|
|
2000-09-01 16:10:17 +00:00
|
|
|
PHP_FUNCTION(register_tick_function);
|
|
|
|
PHP_FUNCTION(unregister_tick_function);
|
2006-02-16 22:49:13 +00:00
|
|
|
#ifdef HAVE_GETLOADAVG
|
2006-02-18 05:41:59 +00:00
|
|
|
PHP_FUNCTION(sys_getloadavg);
|
2006-02-16 22:49:13 +00:00
|
|
|
#endif
|
2000-05-29 16:13:38 +00:00
|
|
|
|
2000-09-08 22:26:07 +00:00
|
|
|
PHP_FUNCTION(is_uploaded_file);
|
2000-09-09 11:41:14 +00:00
|
|
|
PHP_FUNCTION(move_uploaded_file);
|
2000-09-08 21:56:47 +00:00
|
|
|
|
2000-03-04 02:59:14 +00:00
|
|
|
/* From the INI parser */
|
|
|
|
PHP_FUNCTION(parse_ini_file);
|
|
|
|
|
2001-12-06 21:39:01 +00:00
|
|
|
PHP_FUNCTION(str_rot13);
|
2003-01-05 03:24:38 +00:00
|
|
|
PHP_FUNCTION(stream_get_filters);
|
2003-05-19 15:35:06 +00:00
|
|
|
PHP_FUNCTION(stream_filter_register);
|
2003-02-24 21:56:19 +00:00
|
|
|
PHP_FUNCTION(stream_bucket_make_writeable);
|
|
|
|
PHP_FUNCTION(stream_bucket_prepend);
|
|
|
|
PHP_FUNCTION(stream_bucket_append);
|
|
|
|
PHP_FUNCTION(stream_bucket_new);
|
2002-12-31 18:39:36 +00:00
|
|
|
PHP_MINIT_FUNCTION(user_filters);
|
2003-08-07 19:53:31 +00:00
|
|
|
PHP_RSHUTDOWN_FUNCTION(user_filters);
|
2001-12-06 19:02:27 +00:00
|
|
|
|
2001-07-31 07:09:49 +00:00
|
|
|
PHPAPI int _php_error_log(int opt_err, char *message, char *opt, char *headers TSRMLS_DC);
|
2000-08-21 09:50:53 +00:00
|
|
|
|
1999-12-13 18:31:29 +00:00
|
|
|
#if SIZEOF_INT == 4
|
|
|
|
/* Most 32-bit and 64-bit systems have 32-bit ints */
|
1999-12-26 00:18:44 +00:00
|
|
|
typedef unsigned int php_uint32;
|
2001-07-18 22:54:55 +00:00
|
|
|
typedef signed int php_int32;
|
1999-12-13 18:31:29 +00:00
|
|
|
#elif SIZEOF_LONG == 4
|
|
|
|
/* 16-bit systems? */
|
1999-12-26 00:18:44 +00:00
|
|
|
typedef unsigned long php_uint32;
|
2006-11-14 14:42:42 +00:00
|
|
|
typedef signed long php_int32;
|
1999-12-13 18:31:29 +00:00
|
|
|
#else
|
|
|
|
#error Need type which holds 32 bits
|
|
|
|
#endif
|
|
|
|
|
|
|
|
#define MT_N (624)
|
|
|
|
|
2003-08-05 10:29:03 +00:00
|
|
|
typedef struct _php_basic_globals {
|
1999-11-28 00:31:02 +00:00
|
|
|
HashTable *user_shutdown_function_names;
|
|
|
|
HashTable putenv_ht;
|
2001-08-04 16:53:57 +00:00
|
|
|
zval *strtok_zval;
|
1999-11-28 00:31:02 +00:00
|
|
|
char *strtok_string;
|
|
|
|
char *locale_string;
|
2001-08-03 08:49:19 +00:00
|
|
|
char *strtok_last;
|
|
|
|
char strtok_table[256];
|
|
|
|
ulong strtok_len;
|
1999-11-28 00:31:02 +00:00
|
|
|
char str_ebuf[40];
|
1999-12-01 17:21:52 +00:00
|
|
|
zval **array_walk_func_name;
|
|
|
|
zval **user_compare_func_name;
|
2003-08-05 10:29:03 +00:00
|
|
|
zend_fcall_info_cache user_compare_fci_cache;
|
2000-09-01 16:10:17 +00:00
|
|
|
zend_llist *user_tick_functions;
|
2000-10-29 23:34:33 +00:00
|
|
|
|
|
|
|
zval *active_ini_file_section;
|
2000-12-18 19:23:50 +00:00
|
|
|
|
2000-01-31 22:31:00 +00:00
|
|
|
HashTable sm_protected_env_vars;
|
|
|
|
char *sm_allowed_env_vars;
|
2002-09-07 15:45:29 +00:00
|
|
|
|
1999-12-12 16:48:54 +00:00
|
|
|
/* pageinfo.c */
|
1999-12-12 16:14:40 +00:00
|
|
|
long page_uid;
|
2001-07-09 17:36:04 +00:00
|
|
|
long page_gid;
|
1999-12-12 16:14:40 +00:00
|
|
|
long page_inode;
|
|
|
|
long page_mtime;
|
1999-12-12 16:48:54 +00:00
|
|
|
|
2003-11-28 23:25:28 +00:00
|
|
|
/* filestat.c && main/streams/streams.c */
|
|
|
|
char *CurrentStatFile, *CurrentLStatFile;
|
2004-02-23 21:03:58 +00:00
|
|
|
php_stream_statbuf ssb, lssb;
|
1999-12-13 18:31:29 +00:00
|
|
|
|
|
|
|
/* rand.c */
|
1999-12-26 00:18:44 +00:00
|
|
|
php_uint32 state[MT_N+1]; /* state vector + 1 extra to not violate ANSI C */
|
|
|
|
php_uint32 *next; /* next random value is computed from here */
|
1999-12-13 18:31:29 +00:00
|
|
|
int left; /* can *next++ this many times before reloading */
|
2000-05-28 16:19:45 +00:00
|
|
|
|
2001-10-07 11:52:09 +00:00
|
|
|
unsigned int rand_seed; /* Seed for rand(), in ts version */
|
|
|
|
|
|
|
|
zend_bool rand_is_seeded; /* Whether rand() has been seeded */
|
|
|
|
zend_bool mt_rand_is_seeded; /* Whether mt_rand() has been seeded */
|
2001-09-16 20:49:57 +00:00
|
|
|
|
2000-05-28 16:19:45 +00:00
|
|
|
/* syslog.c */
|
|
|
|
int syslog_started;
|
|
|
|
char *syslog_device;
|
2000-06-23 16:21:31 +00:00
|
|
|
|
|
|
|
/* var.c */
|
|
|
|
zend_class_entry *incomplete_class;
|
2000-08-01 07:45:14 +00:00
|
|
|
|
|
|
|
/* url_scanner.c */
|
2000-12-18 19:23:50 +00:00
|
|
|
url_adapt_state_t url_adapt_state;
|
2000-09-19 17:32:27 +00:00
|
|
|
/* url_scanner_ex.re */
|
2000-12-18 19:23:50 +00:00
|
|
|
url_adapt_state_ex_t url_adapt_state_ex;
|
2001-05-18 23:38:46 +00:00
|
|
|
|
|
|
|
#ifdef HAVE_MMAP
|
|
|
|
void *mmap_file;
|
|
|
|
size_t mmap_len;
|
|
|
|
#endif
|
2002-02-21 03:32:42 +00:00
|
|
|
|
2002-12-31 18:39:36 +00:00
|
|
|
HashTable *user_filter_map;
|
2003-10-04 02:51:19 +00:00
|
|
|
|
|
|
|
/* file.c */
|
|
|
|
#if defined(_REENTRANT) && defined(HAVE_MBRLEN) && defined(HAVE_MBSTATE_T)
|
|
|
|
mbstate_t mblen_state;
|
|
|
|
#endif
|
2006-05-14 16:06:48 +00:00
|
|
|
|
|
|
|
int umask;
|
1999-11-28 00:31:02 +00:00
|
|
|
} php_basic_globals;
|
|
|
|
|
|
|
|
#ifdef ZTS
|
2001-07-28 11:36:37 +00:00
|
|
|
#define BG(v) TSRMG(basic_globals_id, php_basic_globals *, v)
|
2006-01-28 06:18:01 +00:00
|
|
|
PHPAPI extern int basic_globals_id;
|
1999-11-28 00:31:02 +00:00
|
|
|
#else
|
|
|
|
#define BG(v) (basic_globals.v)
|
2006-01-28 06:18:01 +00:00
|
|
|
PHPAPI extern php_basic_globals basic_globals;
|
1999-11-28 00:31:02 +00:00
|
|
|
#endif
|
|
|
|
|
1999-04-17 00:37:12 +00:00
|
|
|
#if HAVE_PUTENV
|
|
|
|
typedef struct {
|
|
|
|
char *putenv_string;
|
|
|
|
char *previous_value;
|
|
|
|
char *key;
|
|
|
|
int key_len;
|
|
|
|
} putenv_entry;
|
|
|
|
#endif
|
|
|
|
|
2000-01-30 22:14:58 +00:00
|
|
|
/* Values are comma-delimited
|
2000-01-30 20:31:41 +00:00
|
|
|
*/
|
2000-01-31 22:31:00 +00:00
|
|
|
#define SAFE_MODE_PROTECTED_ENV_VARS "LD_LIBRARY_PATH"
|
|
|
|
#define SAFE_MODE_ALLOWED_ENV_VARS "PHP_"
|
2000-01-30 20:31:41 +00:00
|
|
|
|
2004-03-27 00:50:41 +00:00
|
|
|
PHPAPI double php_get_nan();
|
|
|
|
PHPAPI double php_get_inf();
|
|
|
|
|
2000-07-02 23:46:51 +00:00
|
|
|
#endif /* BASIC_FUNCTIONS_H */
|