PageRenderTime 38ms CodeModel.GetById 10ms RepoModel.GetById 0ms app.codeStats 0ms

/PHPTypes.pas

http://github.com/rnapoles/PHP4Lazarus
Pascal | 440 lines | 333 code | 43 blank | 64 comment | 0 complexity | f01843536cc054615e8549d68e442dcb MD5 | raw file
  1. {*******************************************************}
  2. { PHP4Delphi }
  3. { PHP - Delphi interface }
  4. { }
  5. { Author: }
  6. { Serhiy Perevoznyk }
  7. { serge_perevoznyk@hotmail.com }
  8. { http://users.chello.be/ws36637 }
  9. {*******************************************************}
  10. {$I PHP.INC}
  11. { $Id: phpTypes.pas,v 7.2 10/2009 delphi32 Exp $ }
  12. unit PHPTypes;
  13. interface
  14. uses
  15. {$IFNDEF FPC} Windows, {$ELSE} LCLType,{$ENDIF} ZENDTypes;
  16. {$IFDEF PHP4}
  17. const
  18. phpVersion = 4;
  19. {$ELSE}
  20. const
  21. phpVersion = 5;
  22. {$ENDIF}
  23. const
  24. TRequestName : array [0..3] of AnsiString =
  25. ('GET',
  26. 'PUT',
  27. 'POST',
  28. 'HEAD');
  29. const
  30. // connection status states
  31. PHP_CONNECTION_NORMAL = 0;
  32. PHP_CONNECTION_ABORTED = 1;
  33. PHP_CONNECTION_TIMEOUT = 2;
  34. PARSE_POST = 0;
  35. PARSE_GET = 1;
  36. PARSE_COOKIE = 2;
  37. PARSE_STRING = 3;
  38. const
  39. SAPI_HEADER_ADD = (1 shl 0);
  40. SAPI_HEADER_DELETE_ALL = (1 shl 1);
  41. SAPI_HEADER_SEND_NOW = (1 shl 2);
  42. SAPI_HEADER_SENT_SUCCESSFULLY = 1;
  43. SAPI_HEADER_DO_SEND = 2;
  44. SAPI_HEADER_SEND_FAILED = 3;
  45. SAPI_DEFAULT_MIMETYPE = 'text/html';
  46. SAPI_DEFAULT_CHARSET = '';
  47. SAPI_PHP_VERSION_HEADER = 'X-Powered-By: PHP';
  48. const
  49. short_track_vars_names : array [0..5] of AnsiString =
  50. ('_POST',
  51. '_GET',
  52. '_COOKIE',
  53. '_SERVER',
  54. '_ENV',
  55. '_FILES' );
  56. const
  57. PHP_ENTRY_NAME_COLOR = '#ccccff';
  58. PHP_CONTENTS_COLOR = '#cccccc';
  59. PHP_HEADER_COLOR = '#9999cc';
  60. PHP_INFO_GENERAL = (1 shl 0);
  61. PHP_INFO_CREDITS = (1 shl 1);
  62. PHP_INFO_CONFIGURATION = (1 shl 2);
  63. PHP_INFO_MODULES = (1 shl 3);
  64. PHP_INFO_ENVIRONMENT = (1 shl 4);
  65. PHP_INFO_VARIABLES = (1 shl 5);
  66. PHP_INFO_LICENSE = (1 shl 6);
  67. PHP_INFO_ALL = $FFFFFFFF;
  68. PHP_CREDITS_GROUP = (1 shl 0);
  69. PHP_CREDITS_GENERAL = (1 shl 1);
  70. PHP_CREDITS_SAPI = (1 shl 2);
  71. PHP_CREDITS_MODULES = (1 shl 3);
  72. PHP_CREDITS_DOCS = (1 shl 4);
  73. PHP_CREDITS_FULLPAGE = (1 shl 5);
  74. PHP_CREDITS_QA = (1 shl 6);
  75. PHP_CREDITS_WEB = (1 shl 7);
  76. PHP_CREDITS_ALL = $FFFFFFFF;
  77. PHP_LOGO_GUID = 'PHPE9568F34-D428-11d2-A769-00AA001ACF42';
  78. PHP_EGG_LOGO_GUID = 'PHPE9568F36-D428-11d2-A769-00AA001ACF42';
  79. ZEND_LOGO_GUID = 'PHPE9568F35-D428-11d2-A769-00AA001ACF42';
  80. PHP_CREDITS_GUID = 'PHPB8B5F2A0-3C92-11d3-A3A9-4C7B08C10000';
  81. const
  82. ENT_HTML_QUOTE_NONE = 0;
  83. ENT_HTML_QUOTE_SINGLE = 1;
  84. ENT_HTML_QUOTE_DOUBLE = 2;
  85. ENT_COMPAT = ENT_HTML_QUOTE_DOUBLE;
  86. ENT_QUOTES = (ENT_HTML_QUOTE_DOUBLE or ENT_HTML_QUOTE_SINGLE);
  87. ENT_NOQUOTES = ENT_HTML_QUOTE_NONE;
  88. const
  89. PHP_INI_USER = ZEND_INI_USER;
  90. PHP_INI_PERDIR = ZEND_INI_PERDIR;
  91. PHP_INI_SYSTEM = ZEND_INI_SYSTEM;
  92. PHP_INI_ALL = ZEND_INI_ALL;
  93. PHP_INI_DISPLAY_ORIG = ZEND_INI_DISPLAY_ORIG;
  94. PHP_INI_DISPLAY_ACTIVE = ZEND_INI_DISPLAY_ACTIVE;
  95. PHP_INI_STAGE_STARTUP = ZEND_INI_STAGE_STARTUP;
  96. PHP_INI_STAGE_SHUTDOWN = ZEND_INI_STAGE_SHUTDOWN;
  97. PHP_INI_STAGE_ACTIVATE = ZEND_INI_STAGE_ACTIVATE;
  98. PHP_INI_STAGE_DEACTIVATE = ZEND_INI_STAGE_DEACTIVATE;
  99. PHP_INI_STAGE_RUNTIME = ZEND_INI_STAGE_RUNTIME;
  100. const
  101. TRACK_VARS_POST = 0;
  102. TRACK_VARS_GET = 1;
  103. TRACK_VARS_COOKIE = 2;
  104. TRACK_VARS_SERVER = 3;
  105. TRACK_VARS_ENV = 4;
  106. TRACK_VARS_FILES = 5;
  107. type
  108. error_handling_t = (EH_NORMAL, EH_SUPPRESS, EH_THROW);
  109. type
  110. TRequestType = (rtGet, rtPut, rtPost, rtHead);
  111. TPHPRequestType = (prtGet, prtPost);
  112. type
  113. Psapi_header_struct = ^Tsapi_header_struct;
  114. sapi_header_struct =
  115. record
  116. header : PAnsiChar;
  117. header_len : uint;
  118. {$IFNDEF PHP530}
  119. replace : zend_bool;
  120. {$ENDIF}
  121. end;
  122. Tsapi_header_struct = sapi_header_struct;
  123. Psapi_headers_struct = ^Tsapi_headers_struct;
  124. sapi_headers_struct =
  125. record
  126. headers : zend_llist;
  127. http_response_code : Integer;
  128. send_default_content_type : Byte;
  129. mimetype : PAnsiChar;
  130. http_status_line : PAnsiChar;
  131. end;
  132. Tsapi_headers_struct = sapi_headers_struct;
  133. Psapi_post_entry = ^Tsapi_post_entry;
  134. sapi_post_entry =
  135. record
  136. content_type : PAnsiChar;
  137. content_type_len : uint;
  138. post_reader : pointer; //void (*post_reader)(TSRMLS_D);
  139. post_handler : pointer; //void (*post_handler)(char *content_type_dup, void *arg TSRMLS_DC);
  140. end;
  141. Tsapi_post_entry = sapi_post_entry;
  142. {* Some values in this structure needs to be filled in before
  143. * calling sapi_activate(). We WILL change the `char *' entries,
  144. * so make sure that you allocate a separate buffer for them
  145. * and that you free them after sapi_deactivate().
  146. *}
  147. Psapi_request_info = ^Tsapi_request_info;
  148. sapi_request_info =
  149. record
  150. request_method : PAnsiChar;
  151. query_string : PAnsiChar;
  152. post_data : PAnsiChar;
  153. raw_post_data : PAnsiChar;
  154. cookie_data : PAnsiChar;
  155. content_length : Longint;
  156. post_data_length : uint;
  157. raw_post_data_length : uint;
  158. path_translated : PAnsiChar;
  159. request_uri : PAnsiChar;
  160. content_type : PAnsiChar;
  161. headers_only : zend_bool;
  162. no_headers : zend_bool;
  163. {$IFDEF PHP5}
  164. headers_read : zend_bool;
  165. {$ENDIF}
  166. post_entry : PSapi_post_entry;
  167. content_type_dup : PAnsiChar;
  168. //for HTTP authentication
  169. auth_user : PAnsiChar;
  170. auth_password : PAnsiChar;
  171. {$IFDEF PHP510}
  172. auth_digest : PAnsiChar;
  173. {$ENDIF}
  174. //this is necessary for the CGI SAPI module
  175. argv0 : PAnsiChar;
  176. //this is necessary for Safe Mode
  177. current_user : PAnsiChar;
  178. current_user_length : Integer;
  179. //this is necessary for CLI module
  180. argc : Integer;
  181. argv : ^PAnsiChar;
  182. {$IFDEF PHP510}
  183. proto_num : integer;
  184. {$ENDIF}
  185. end;
  186. Tsapi_request_info = sapi_request_info;
  187. Psapi_header_line = ^Tsapi_header_line;
  188. sapi_header_line =
  189. record
  190. line : PAnsiChar;
  191. line_len : uint;
  192. response_code : Longint;
  193. end;
  194. Tsapi_header_line = sapi_header_line;
  195. Psapi_globals_struct = ^Tsapi_globals_struct;
  196. _sapi_globals_struct =
  197. record
  198. server_context : Pointer;
  199. request_info : sapi_request_info;
  200. sapi_headers : sapi_headers_struct;
  201. read_post_bytes : Integer;
  202. headers_sent : Byte;
  203. global_stat : stat;
  204. default_mimetype : PAnsiChar;
  205. default_charset : PAnsiChar;
  206. rfc1867_uploaded_files : PHashTable;
  207. post_max_size : Longint;
  208. options : Integer;
  209. {$IFDEF PHP5}
  210. sapi_started : zend_bool;
  211. {$IFDEF PHP510}
  212. global_request_time : longint;
  213. known_post_content_types : THashTable;
  214. {$ENDIF}
  215. {$ENDIF}
  216. end;
  217. Tsapi_globals_struct = _sapi_globals_struct;
  218. Psapi_module_struct = ^Tsapi_module_struct;
  219. TModuleShutdownFunc = function (globals : pointer) : Integer; cdecl;
  220. TModuleStartupFunc = function (sapi_module : psapi_module_struct) : integer; cdecl;
  221. sapi_module_struct =
  222. record
  223. name : PAnsiChar;
  224. pretty_name : PAnsiChar;
  225. startup : TModuleStartupFunc; //int (*startup)(struct _sapi_module_struct *sapi_module);
  226. shutdown : TModuleShutdownFunc; //int (*shutdown)(struct _sapi_module_struct *sapi_module);
  227. activate : pointer;
  228. deactivate : pointer;
  229. ub_write : pointer;
  230. flush : pointer;
  231. stat : pointer;
  232. getenv : pointer;
  233. sapi_error : pointer;
  234. header_handler : pointer;
  235. send_headers : pointer;
  236. send_header : pointer;
  237. read_post : pointer;
  238. read_cookies : pointer;
  239. register_server_variables : pointer;
  240. log_message : pointer;
  241. {$IFDEF PHP5}
  242. {$IFDEF PHP510}
  243. get_request_time : pointer;
  244. {$ENDIF}
  245. {$IFDEF PHP530}
  246. terminate_process : pointer;
  247. {$ENDIF}
  248. {$ENDIF}
  249. php_ini_path_override : PAnsiChar;
  250. block_interruptions : pointer;
  251. unblock_interruptions : pointer;
  252. default_post_reader : pointer;
  253. treat_data : pointer;
  254. executable_location : PAnsiChar;
  255. php_ini_ignore : Integer;
  256. {******************************}
  257. {IMPORTANT: }
  258. {Please check your php version }
  259. {******************************}
  260. {$IFDEF PHP4}
  261. {$IFDEF PHP433}
  262. get_fd : pointer;
  263. force_http_10 : pointer;
  264. get_target_uid : pointer;
  265. get_target_gid : pointer;
  266. ini_defaults : pointer;
  267. phpinfo_as_text : integer;
  268. {$ENDIF}
  269. {$ENDIF}
  270. {$IFDEF PHP5}
  271. get_fd : pointer;
  272. force_http_10 : pointer;
  273. get_target_uid : pointer;
  274. get_target_gid : pointer;
  275. input_filter : pointer;
  276. ini_defaults : pointer;
  277. phpinfo_as_text : integer;
  278. {$IFDEF PHP520}
  279. ini_entries : PAnsiChar;
  280. {$ENDIF}
  281. {$IFDEF PHP530}
  282. additional_functions: Pointer;
  283. input_filter_init : pointer;
  284. {$ENDIF}
  285. {$ENDIF}
  286. end;
  287. Tsapi_module_struct = sapi_module_struct;
  288. type
  289. PPHP_URL = ^TPHP_URL;
  290. Tphp_url =
  291. record
  292. scheme : PAnsiChar;
  293. user : PAnsiChar;
  294. pass : PAnsiChar;
  295. host : PAnsiChar;
  296. port : Smallint;
  297. path : PAnsiChar;
  298. query : PAnsiChar;
  299. fragment : PAnsiChar;
  300. end;
  301. type
  302. arg_separators =
  303. record
  304. output : PAnsiChar;
  305. input : PAnsiChar;
  306. end;
  307. type
  308. Pphp_Core_Globals = ^TPHP_core_globals;
  309. Tphp_core_globals =
  310. record
  311. magic_quotes_gpc : zend_bool;
  312. magic_quotes_runtime : zend_bool;
  313. magic_quotes_sybase : zend_bool;
  314. safe_mode : zend_bool;
  315. allow_call_time_pass_reference : boolean;
  316. implicit_flush : boolean;
  317. output_buffering : Integer;
  318. safe_mode_include_dir : PAnsiChar;
  319. safe_mode_gid : boolean;
  320. sql_safe_mode : boolean;
  321. enable_dl :boolean;
  322. output_handler : PAnsiChar;
  323. unserialize_callback_func : PAnsiChar;
  324. safe_mode_exec_dir : PAnsiChar;
  325. memory_limit : Longint;
  326. max_input_time : Longint;
  327. track_errors : boolean;
  328. display_errors : boolean;
  329. display_startup_errors : boolean;
  330. log_errors : boolean;
  331. log_errors_max_len : Longint;
  332. ignore_repeated_errors : boolean;
  333. ignore_repeated_source : boolean;
  334. report_memleaks : boolean;
  335. error_log : PAnsiChar;
  336. doc_root : PAnsiChar;
  337. user_dir : PAnsiChar;
  338. include_path : PAnsiChar;
  339. open_basedir : PAnsiChar;
  340. extension_dir : PAnsiChar;
  341. upload_tmp_dir : PAnsiChar;
  342. upload_max_filesize : Longint;
  343. error_append_string : PAnsiChar;
  344. error_prepend_string : PAnsiChar;
  345. auto_prepend_file : PAnsiChar;
  346. auto_append_file : PAnsiChar;
  347. arg_separator : arg_separators;
  348. gpc_order : PAnsiChar;
  349. variables_order : PAnsiChar;
  350. rfc1867_protected_variables : THashTable;
  351. connection_status : Smallint;
  352. ignore_user_abort : Smallint;
  353. header_is_being_sent : Byte;
  354. tick_functions : zend_llist;
  355. http_globals : array[0..5] of pzval;
  356. expose_php : boolean;
  357. register_globals : boolean;
  358. register_argc_argv : boolean;
  359. y2k_compliance : boolean;
  360. docref_root : PAnsiChar;
  361. docref_ext : PAnsiChar;
  362. html_errors : boolean;
  363. xmlrpc_errors : boolean;
  364. xmlrpc_error_number : Longint;
  365. modules_activated : boolean;
  366. file_uploads : boolean;
  367. during_request_startup : boolean;
  368. allow_url_fopen : boolean;
  369. always_populate_raw_post_data : boolean;
  370. {$IFDEF PHP510}
  371. report_zend_debug : boolean;
  372. last_error_message : PAnsiChar;
  373. last_error_file : PAnsiChar;
  374. last_error_lineno : integer;
  375. {$IFNDEF PHP530}
  376. error_handling : error_handling_t;
  377. exception_class : Pointer;
  378. {$ENDIF}
  379. disable_functions : PAnsiChar;
  380. disable_classes : PAnsiChar;
  381. {$ENDIF}
  382. {$IFDEF PHP520}
  383. allow_url_include : zend_bool;
  384. com_initialized : zend_bool;
  385. max_input_nesting_level : longint;
  386. in_user_include : zend_bool;
  387. {$ENDIF}
  388. {$IFDEF PHP530}
  389. user_ini_filename : PAnsiChar;
  390. user_ini_cache_ttl : longint;
  391. request_order : PAnsiChar;
  392. mail_x_header : zend_bool;
  393. mail_log : PAnsiChar;
  394. {$ENDIF}
  395. end;
  396. implementation
  397. end.