1 : /*
2 : +----------------------------------------------------------------------+
3 : | PHP Version 5 |
4 : +----------------------------------------------------------------------+
5 : | Copyright (c) 1997-2008 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 : | Authors: Andi Gutmans <andi@zend.com> |
16 : | Zeev Suraski <zeev@zend.com> |
17 : +----------------------------------------------------------------------+
18 : */
19 :
20 : /* $Id: basic_functions.c 289666 2009-10-15 12:26:54Z iliaa $ */
21 :
22 : #include "php.h"
23 : #include "php_streams.h"
24 : #include "php_main.h"
25 : #include "php_globals.h"
26 : #include "php_ini.h"
27 : #include "php_standard.h"
28 : #include "php_math.h"
29 : #include "php_http.h"
30 : #include "php_incomplete_class.h"
31 : #include "php_getopt.h"
32 : #include "ext/standard/info.h"
33 : #include "ext/session/php_session.h"
34 : #include "zend_operators.h"
35 : #include "ext/standard/php_dns.h"
36 : #include "ext/standard/php_uuencode.h"
37 : #include "safe_mode.h"
38 :
39 : #ifdef PHP_WIN32
40 : #include "win32/php_win32_globals.h"
41 : #include "win32/time.h"
42 : #endif
43 :
44 : typedef struct yy_buffer_state *YY_BUFFER_STATE;
45 :
46 : #include "zend.h"
47 : #include "zend_ini_scanner.h"
48 : #include "zend_language_scanner.h"
49 : #include <zend_language_parser.h>
50 :
51 : #include <stdarg.h>
52 : #include <stdlib.h>
53 : #include <math.h>
54 : #include <time.h>
55 : #include <stdio.h>
56 :
57 : #ifndef PHP_WIN32
58 : #include <sys/types.h>
59 : #include <sys/stat.h>
60 : #endif
61 :
62 : #ifdef NETWARE
63 : #include <netinet/in.h>
64 : #endif
65 :
66 : #ifndef PHP_WIN32
67 : # include <netdb.h>
68 : #else
69 : #include "win32/inet.h"
70 : #endif
71 :
72 : #if HAVE_ARPA_INET_H
73 : # include <arpa/inet.h>
74 : #endif
75 :
76 : #if HAVE_UNISTD_H
77 : # include <unistd.h>
78 : #endif
79 :
80 : #if HAVE_STRING_H
81 : # include <string.h>
82 : #else
83 : # include <strings.h>
84 : #endif
85 :
86 : #if HAVE_LOCALE_H
87 : # include <locale.h>
88 : #endif
89 :
90 : #if HAVE_SYS_MMAN_H
91 : # include <sys/mman.h>
92 : #endif
93 :
94 : #if HAVE_SYS_LOADAVG_H
95 : # include <sys/loadavg.h>
96 : #endif
97 :
98 : #ifdef PHP_WIN32
99 : # include "win32/unistd.h"
100 : #endif
101 :
102 : #ifndef INADDR_NONE
103 : #define INADDR_NONE ((unsigned long int) -1)
104 : #endif
105 :
106 : #include "zend_globals.h"
107 : #include "php_globals.h"
108 : #include "SAPI.h"
109 : #include "php_ticks.h"
110 :
111 : #ifdef ZTS
112 : PHPAPI int basic_globals_id;
113 : #else
114 : PHPAPI php_basic_globals basic_globals;
115 : #endif
116 :
117 : #include "php_fopen_wrappers.h"
118 : #include "streamsfuncs.h"
119 :
120 : static zend_class_entry *incomplete_class_entry = NULL;
121 :
122 : typedef struct _php_shutdown_function_entry {
123 : zval **arguments;
124 : int arg_count;
125 : } php_shutdown_function_entry;
126 :
127 : typedef struct _user_tick_function_entry {
128 : zval **arguments;
129 : int arg_count;
130 : int calling;
131 : } user_tick_function_entry;
132 :
133 : /* some prototypes for local functions */
134 : static void user_shutdown_function_dtor(php_shutdown_function_entry *shutdown_function_entry);
135 : static void user_tick_function_dtor(user_tick_function_entry *tick_function_entry);
136 :
137 : #undef sprintf
138 :
139 : /* {{{ arginfo */
140 : /* {{{ main/main.c */
141 : ZEND_BEGIN_ARG_INFO(arginfo_set_time_limit, 0)
142 : ZEND_ARG_INFO(0, seconds)
143 : ZEND_END_ARG_INFO()
144 : /* }}} */
145 : /* {{{ main/output.c */
146 : ZEND_BEGIN_ARG_INFO_EX(arginfo_ob_start, 0, 0, 0)
147 : ZEND_ARG_INFO(0, user_function)
148 : ZEND_ARG_INFO(0, chunk_size)
149 : ZEND_ARG_INFO(0, flags)
150 : ZEND_END_ARG_INFO()
151 :
152 : ZEND_BEGIN_ARG_INFO(arginfo_ob_flush, 0)
153 : ZEND_END_ARG_INFO()
154 :
155 : ZEND_BEGIN_ARG_INFO(arginfo_ob_clean, 0)
156 : ZEND_END_ARG_INFO()
157 :
158 : ZEND_BEGIN_ARG_INFO(arginfo_ob_end_flush, 0)
159 : ZEND_END_ARG_INFO()
160 :
161 : ZEND_BEGIN_ARG_INFO(arginfo_ob_end_clean, 0)
162 : ZEND_END_ARG_INFO()
163 :
164 : ZEND_BEGIN_ARG_INFO(arginfo_ob_get_flush, 0)
165 : ZEND_END_ARG_INFO()
166 :
167 : ZEND_BEGIN_ARG_INFO(arginfo_ob_get_clean, 0)
168 : ZEND_END_ARG_INFO()
169 :
170 : ZEND_BEGIN_ARG_INFO(arginfo_ob_get_contents, 0)
171 : ZEND_END_ARG_INFO()
172 :
173 : ZEND_BEGIN_ARG_INFO(arginfo_ob_get_level, 0)
174 : ZEND_END_ARG_INFO()
175 :
176 : ZEND_BEGIN_ARG_INFO(arginfo_ob_get_length, 0)
177 : ZEND_END_ARG_INFO()
178 :
179 : ZEND_BEGIN_ARG_INFO(arginfo_ob_list_handlers, 0)
180 : ZEND_END_ARG_INFO()
181 :
182 : ZEND_BEGIN_ARG_INFO_EX(arginfo_ob_get_status, 0, 0, 0)
183 : ZEND_ARG_INFO(0, full_status)
184 : ZEND_END_ARG_INFO()
185 :
186 : ZEND_BEGIN_ARG_INFO_EX(arginfo_ob_implicit_flush, 0, 0, 0)
187 : ZEND_ARG_INFO(0, flag)
188 : ZEND_END_ARG_INFO()
189 :
190 : ZEND_BEGIN_ARG_INFO(arginfo_output_reset_rewrite_vars, 0)
191 : ZEND_END_ARG_INFO()
192 :
193 : ZEND_BEGIN_ARG_INFO(arginfo_output_add_rewrite_var, 0)
194 : ZEND_ARG_INFO(0, name)
195 : ZEND_ARG_INFO(0, value)
196 : ZEND_END_ARG_INFO()
197 : /* }}} */
198 : /* {{{ main/streams/userspace.c */
199 : ZEND_BEGIN_ARG_INFO_EX(arginfo_stream_wrapper_register, 0, 0, 2)
200 : ZEND_ARG_INFO(0, protocol)
201 : ZEND_ARG_INFO(0, classname)
202 : ZEND_ARG_INFO(0, flags)
203 : ZEND_END_ARG_INFO()
204 :
205 : ZEND_BEGIN_ARG_INFO(arginfo_stream_wrapper_unregister, 0)
206 : ZEND_ARG_INFO(0, protocol)
207 : ZEND_END_ARG_INFO()
208 :
209 : ZEND_BEGIN_ARG_INFO(arginfo_stream_wrapper_restore, 0)
210 : ZEND_ARG_INFO(0, protocol)
211 : ZEND_END_ARG_INFO()
212 : /* }}} */
213 : /* {{{ array.c */
214 : ZEND_BEGIN_ARG_INFO_EX(arginfo_krsort, 0, 0, 1)
215 : ZEND_ARG_INFO(1, arg) /* ARRAY_INFO(1, arg, 0) */
216 : ZEND_ARG_INFO(0, sort_flags)
217 : ZEND_END_ARG_INFO()
218 :
219 : ZEND_BEGIN_ARG_INFO_EX(arginfo_ksort, 0, 0, 1)
220 : ZEND_ARG_INFO(1, arg) /* ARRAY_INFO(1, arg, 0) */
221 : ZEND_ARG_INFO(0, sort_flags)
222 : ZEND_END_ARG_INFO()
223 :
224 : ZEND_BEGIN_ARG_INFO_EX(arginfo_count, 0, 0, 1)
225 : ZEND_ARG_INFO(0, var)
226 : ZEND_ARG_INFO(0, mode)
227 : ZEND_END_ARG_INFO()
228 :
229 : ZEND_BEGIN_ARG_INFO(arginfo_natsort, 0)
230 : ZEND_ARG_INFO(1, arg) /* ARRAY_INFO(1, arg, 0) */
231 : ZEND_END_ARG_INFO()
232 :
233 : ZEND_BEGIN_ARG_INFO(arginfo_natcasesort, 0)
234 : ZEND_ARG_INFO(1, arg) /* ARRAY_INFO(1, arg, 0) */
235 : ZEND_END_ARG_INFO()
236 :
237 : ZEND_BEGIN_ARG_INFO_EX(arginfo_asort, 0, 0, 1)
238 : ZEND_ARG_INFO(1, arg) /* ARRAY_INFO(1, arg, 0) */
239 : ZEND_ARG_INFO(0, sort_flags)
240 : ZEND_END_ARG_INFO()
241 :
242 : ZEND_BEGIN_ARG_INFO_EX(arginfo_arsort, 0, 0, 1)
243 : ZEND_ARG_INFO(1, arg) /* ARRAY_INFO(1, arg, 0) */
244 : ZEND_ARG_INFO(0, sort_flags)
245 : ZEND_END_ARG_INFO()
246 :
247 : ZEND_BEGIN_ARG_INFO_EX(arginfo_sort, 0, 0, 1)
248 : ZEND_ARG_INFO(1, arg) /* ARRAY_INFO(1, arg, 0) */
249 : ZEND_ARG_INFO(0, sort_flags)
250 : ZEND_END_ARG_INFO()
251 :
252 : ZEND_BEGIN_ARG_INFO_EX(arginfo_rsort, 0, 0, 1)
253 : ZEND_ARG_INFO(1, arg) /* ARRAY_INFO(1, arg, 0) */
254 : ZEND_ARG_INFO(0, sort_flags)
255 : ZEND_END_ARG_INFO()
256 :
257 : ZEND_BEGIN_ARG_INFO(arginfo_usort, 0)
258 : ZEND_ARG_INFO(1, arg) /* ARRAY_INFO(1, arg, 0) */
259 : ZEND_ARG_INFO(0, cmp_function)
260 : ZEND_END_ARG_INFO()
261 :
262 : ZEND_BEGIN_ARG_INFO(arginfo_uasort, 0)
263 : ZEND_ARG_INFO(1, arg) /* ARRAY_INFO(1, arg, 0) */
264 : ZEND_ARG_INFO(0, cmp_function)
265 : ZEND_END_ARG_INFO()
266 :
267 : ZEND_BEGIN_ARG_INFO(arginfo_uksort, 0)
268 : ZEND_ARG_INFO(1, arg) /* ARRAY_INFO(1, arg, 0) */
269 : ZEND_ARG_INFO(0, cmp_function)
270 : ZEND_END_ARG_INFO()
271 :
272 : ZEND_BEGIN_ARG_INFO(arginfo_end, 0)
273 : ZEND_ARG_INFO(1, arg)
274 : ZEND_END_ARG_INFO()
275 :
276 : ZEND_BEGIN_ARG_INFO(arginfo_prev, 0)
277 : ZEND_ARG_INFO(1, arg)
278 : ZEND_END_ARG_INFO()
279 :
280 : ZEND_BEGIN_ARG_INFO(arginfo_next, 0)
281 : ZEND_ARG_INFO(1, arg)
282 : ZEND_END_ARG_INFO()
283 :
284 : ZEND_BEGIN_ARG_INFO(arginfo_reset, 0)
285 : ZEND_ARG_INFO(1, arg)
286 : ZEND_END_ARG_INFO()
287 :
288 : ZEND_BEGIN_ARG_INFO(arginfo_current, ZEND_SEND_PREFER_REF)
289 : ZEND_ARG_INFO(ZEND_SEND_PREFER_REF, arg)
290 : ZEND_END_ARG_INFO()
291 :
292 : ZEND_BEGIN_ARG_INFO(arginfo_key, ZEND_SEND_PREFER_REF)
293 : ZEND_ARG_INFO(ZEND_SEND_PREFER_REF, arg)
294 : ZEND_END_ARG_INFO()
295 :
296 : ZEND_BEGIN_ARG_INFO_EX(arginfo_min, 0, 0, 1)
297 : ZEND_ARG_INFO(0, arg1)
298 : ZEND_ARG_INFO(0, arg2)
299 : ZEND_ARG_INFO(0, ...)
300 : ZEND_END_ARG_INFO()
301 :
302 : ZEND_BEGIN_ARG_INFO_EX(arginfo_max, 0, 0, 1)
303 : ZEND_ARG_INFO(0, arg1)
304 : ZEND_ARG_INFO(0, arg2)
305 : ZEND_ARG_INFO(0, ...)
306 : ZEND_END_ARG_INFO()
307 :
308 : ZEND_BEGIN_ARG_INFO_EX(arginfo_array_walk, 0, 0, 2)
309 : ZEND_ARG_INFO(1, input) /* ARRAY_INFO(1, arg, 0) */
310 : ZEND_ARG_INFO(0, funcname)
311 : ZEND_ARG_INFO(0, userdata)
312 : ZEND_END_ARG_INFO()
313 :
314 : ZEND_BEGIN_ARG_INFO_EX(arginfo_array_walk_recursive, 0, 0, 2)
315 : ZEND_ARG_INFO(1, input) /* ARRAY_INFO(1, arg, 0) */
316 : ZEND_ARG_INFO(0, funcname)
317 : ZEND_ARG_INFO(0, userdata)
318 : ZEND_END_ARG_INFO()
319 :
320 : ZEND_BEGIN_ARG_INFO_EX(arginfo_in_array, 0, 0, 2)
321 : ZEND_ARG_INFO(0, needle)
322 : ZEND_ARG_INFO(0, haystack) /* ARRAY_INFO(0, haystack, 0) */
323 : ZEND_ARG_INFO(0, strict)
324 : ZEND_END_ARG_INFO()
325 :
326 : ZEND_BEGIN_ARG_INFO_EX(arginfo_array_search, 0, 0, 2)
327 : ZEND_ARG_INFO(0, needle)
328 : ZEND_ARG_INFO(0, haystack) /* ARRAY_INFO(0, haystack, 0) */
329 : ZEND_ARG_INFO(0, strict)
330 : ZEND_END_ARG_INFO()
331 :
332 : ZEND_BEGIN_ARG_INFO_EX(arginfo_extract, 0, 0, 1)
333 : ZEND_ARG_INFO(ZEND_SEND_PREFER_REF, arg) /* ARRAY_INFO(0, arg, 0) */
334 : ZEND_ARG_INFO(0, extract_type)
335 : ZEND_ARG_INFO(0, prefix)
336 : ZEND_END_ARG_INFO()
337 :
338 : ZEND_BEGIN_ARG_INFO_EX(arginfo_compact, 0, 0, 1)
339 : ZEND_ARG_INFO(0, var_names)
340 : ZEND_ARG_INFO(0, ...)
341 : ZEND_END_ARG_INFO()
342 :
343 : ZEND_BEGIN_ARG_INFO(arginfo_array_fill, 0)
344 : ZEND_ARG_INFO(0, start_key)
345 : ZEND_ARG_INFO(0, num)
346 : ZEND_ARG_INFO(0, val)
347 : ZEND_END_ARG_INFO()
348 :
349 : ZEND_BEGIN_ARG_INFO(arginfo_array_fill_keys, 0)
350 : ZEND_ARG_INFO(0, keys) /* ARRAY_INFO(0, keys, 0) */
351 : ZEND_ARG_INFO(0, val)
352 : ZEND_END_ARG_INFO()
353 :
354 : ZEND_BEGIN_ARG_INFO_EX(arginfo_range, 0, 0, 2)
355 : ZEND_ARG_INFO(0, low)
356 : ZEND_ARG_INFO(0, high)
357 : ZEND_ARG_INFO(0, step)
358 : ZEND_END_ARG_INFO()
359 :
360 : ZEND_BEGIN_ARG_INFO(arginfo_shuffle, 0)
361 : ZEND_ARG_INFO(1, arg) /* ARRAY_INFO(1, arg, 0) */
362 : ZEND_END_ARG_INFO()
363 :
364 : ZEND_BEGIN_ARG_INFO_EX(arginfo_array_push, 0, 0, 2)
365 : ZEND_ARG_INFO(1, stack) /* ARRAY_INFO(1, stack, 0) */
366 : ZEND_ARG_INFO(0, var)
367 : ZEND_ARG_INFO(0, ...)
368 : ZEND_END_ARG_INFO()
369 :
370 : ZEND_BEGIN_ARG_INFO(arginfo_array_pop, 0)
371 : ZEND_ARG_INFO(1, stack) /* ARRAY_INFO(1, stack, 0) */
372 : ZEND_END_ARG_INFO()
373 :
374 : ZEND_BEGIN_ARG_INFO(arginfo_array_shift, 0)
375 : ZEND_ARG_INFO(1, stack) /* ARRAY_INFO(1, stack, 0) */
376 : ZEND_END_ARG_INFO()
377 :
378 : ZEND_BEGIN_ARG_INFO_EX(arginfo_array_unshift, 0, 0, 2)
379 : ZEND_ARG_INFO(1, stack) /* ARRAY_INFO(1, stack, 0) */
380 : ZEND_ARG_INFO(0, var)
381 : ZEND_ARG_INFO(0, ...)
382 : ZEND_END_ARG_INFO()
383 :
384 : ZEND_BEGIN_ARG_INFO_EX(arginfo_array_splice, 0, 0, 2)
385 : ZEND_ARG_INFO(1, arg) /* ARRAY_INFO(1, arg, 0) */
386 : ZEND_ARG_INFO(0, offset)
387 : ZEND_ARG_INFO(0, length)
388 : ZEND_ARG_INFO(0, replacement) /* ARRAY_INFO(0, arg, 1) */
389 : ZEND_END_ARG_INFO()
390 :
391 : ZEND_BEGIN_ARG_INFO_EX(arginfo_array_slice, 0, 0, 2)
392 : ZEND_ARG_INFO(0, arg) /* ARRAY_INFO(1, arg, 0) */
393 : ZEND_ARG_INFO(0, offset)
394 : ZEND_ARG_INFO(0, length)
395 : ZEND_ARG_INFO(0, preserve_keys)
396 : ZEND_END_ARG_INFO()
397 :
398 : ZEND_BEGIN_ARG_INFO_EX(arginfo_array_merge, 0, 0, 2)
399 : ZEND_ARG_INFO(0, arr1) /* ARRAY_INFO(0, arg, 0) */
400 : ZEND_ARG_INFO(0, arr2) /* ARRAY_INFO(0, arg, 0) */
401 : ZEND_ARG_INFO(0, ...) /* ARRAY_INFO(0, ..., 0) */
402 : ZEND_END_ARG_INFO()
403 :
404 : ZEND_BEGIN_ARG_INFO_EX(arginfo_array_merge_recursive, 0, 0, 2)
405 : ZEND_ARG_INFO(0, arr1) /* ARRAY_INFO(0, arg, 0) */
406 : ZEND_ARG_INFO(0, arr2) /* ARRAY_INFO(0, arg, 0) */
407 : ZEND_ARG_INFO(0, ...) /* ARRAY_INFO(0, arg, 0) */
408 : ZEND_END_ARG_INFO()
409 :
410 : ZEND_BEGIN_ARG_INFO_EX(arginfo_array_replace, 0, 0, 2)
411 : ZEND_ARG_INFO(0, arr1) /* ARRAY_INFO(0, arg, 0) */
412 : ZEND_ARG_INFO(0, arr2) /* ARRAY_INFO(0, arg, 0) */
413 : ZEND_ARG_INFO(0, ...) /* ARRAY_INFO(0, ..., 0) */
414 : ZEND_END_ARG_INFO()
415 :
416 : ZEND_BEGIN_ARG_INFO_EX(arginfo_array_replace_recursive, 0, 0, 2)
417 : ZEND_ARG_INFO(0, arr1) /* ARRAY_INFO(0, arg, 0) */
418 : ZEND_ARG_INFO(0, arr2) /* ARRAY_INFO(0, arg, 0) */
419 : ZEND_ARG_INFO(0, ...) /* ARRAY_INFO(0, arg, 0) */
420 : ZEND_END_ARG_INFO()
421 :
422 : ZEND_BEGIN_ARG_INFO_EX(arginfo_array_keys, 0, 0, 1)
423 : ZEND_ARG_INFO(0, arg) /* ARRAY_INFO(0, arg, 0) */
424 : ZEND_ARG_INFO(0, search_value)
425 : ZEND_ARG_INFO(0, strict)
426 : ZEND_END_ARG_INFO()
427 :
428 : ZEND_BEGIN_ARG_INFO(arginfo_array_values, 0)
429 : ZEND_ARG_INFO(0, arg) /* ARRAY_INFO(0, arg, 0) */
430 : ZEND_END_ARG_INFO()
431 :
432 : ZEND_BEGIN_ARG_INFO(arginfo_array_count_values, 0)
433 : ZEND_ARG_INFO(0, arg) /* ARRAY_INFO(0, arg, 0) */
434 : ZEND_END_ARG_INFO()
435 :
436 : ZEND_BEGIN_ARG_INFO_EX(arginfo_array_reverse, 0, 0, 1)
437 : ZEND_ARG_INFO(0, input) /* ARRAY_INFO(0, arg, 0) */
438 : ZEND_ARG_INFO(0, preserve_keys)
439 : ZEND_END_ARG_INFO()
440 :
441 : ZEND_BEGIN_ARG_INFO(arginfo_array_pad, 0)
442 : ZEND_ARG_INFO(0, arg) /* ARRAY_INFO(0, arg, 0) */
443 : ZEND_ARG_INFO(0, pad_size)
444 : ZEND_ARG_INFO(0, pad_value)
445 : ZEND_END_ARG_INFO()
446 :
447 : ZEND_BEGIN_ARG_INFO(arginfo_array_flip, 0)
448 : ZEND_ARG_INFO(0, arg) /* ARRAY_INFO(0, arg, 0) */
449 : ZEND_END_ARG_INFO()
450 :
451 : ZEND_BEGIN_ARG_INFO_EX(arginfo_array_change_key_case, 0, 0, 1)
452 : ZEND_ARG_INFO(0, input) /* ARRAY_INFO(0, arg, 0) */
453 : ZEND_ARG_INFO(0, case)
454 : ZEND_END_ARG_INFO()
455 :
456 : ZEND_BEGIN_ARG_INFO(arginfo_array_unique, 0)
457 : ZEND_ARG_INFO(0, arg) /* ARRAY_INFO(0, arg, 0) */
458 : ZEND_END_ARG_INFO()
459 :
460 : ZEND_BEGIN_ARG_INFO_EX(arginfo_array_intersect_key, 0, 0, 2)
461 : ZEND_ARG_INFO(0, arr1) /* ARRAY_INFO(0, arg1, 0) */
462 : ZEND_ARG_INFO(0, arr2) /* ARRAY_INFO(0, arg2, 0) */
463 : ZEND_ARG_INFO(0, ...) /* ARRAY_INFO(0, ..., 0) */
464 : ZEND_END_ARG_INFO()
465 :
466 : ZEND_BEGIN_ARG_INFO(arginfo_array_intersect_ukey, 0)
467 : ZEND_ARG_INFO(0, arr1) /* ARRAY_INFO(0, arg1, 0) */
468 : ZEND_ARG_INFO(0, arr2) /* ARRAY_INFO(0, arg2, 0) */
469 : ZEND_ARG_INFO(0, callback_key_compare_func)
470 : ZEND_END_ARG_INFO()
471 :
472 : ZEND_BEGIN_ARG_INFO_EX(arginfo_array_intersect, 0, 0, 2)
473 : ZEND_ARG_INFO(0, arr1) /* ARRAY_INFO(0, arg1, 0) */
474 : ZEND_ARG_INFO(0, arr2) /* ARRAY_INFO(0, arg2, 0) */
475 : ZEND_ARG_INFO(0, ...) /* ARRAY_INFO(0, ..., 0) */
476 : ZEND_END_ARG_INFO()
477 :
478 : ZEND_BEGIN_ARG_INFO(arginfo_array_uintersect, 0)
479 : ZEND_ARG_INFO(0, arr1) /* ARRAY_INFO(0, arg1, 0) */
480 : ZEND_ARG_INFO(0, arr2) /* ARRAY_INFO(0, arg2, 0) */
481 : ZEND_ARG_INFO(0, callback_data_compare_func)
482 : ZEND_END_ARG_INFO()
483 :
484 : ZEND_BEGIN_ARG_INFO_EX(arginfo_array_intersect_assoc, 0, 0, 2)
485 : ZEND_ARG_INFO(0, arr1) /* ARRAY_INFO(0, arg1, 0) */
486 : ZEND_ARG_INFO(0, arr2) /* ARRAY_INFO(0, arg2, 0) */
487 : ZEND_ARG_INFO(0, ...) /* ARRAY_INFO(0, ..., 0) */
488 : ZEND_END_ARG_INFO()
489 :
490 : ZEND_BEGIN_ARG_INFO(arginfo_array_uintersect_assoc, 0)
491 : ZEND_ARG_INFO(0, arr1) /* ARRAY_INFO(0, arg1, 0) */
492 : ZEND_ARG_INFO(0, arr2) /* ARRAY_INFO(0, arg2, 0) */
493 : ZEND_ARG_INFO(0, callback_data_compare_func)
494 : ZEND_END_ARG_INFO()
495 :
496 : ZEND_BEGIN_ARG_INFO(arginfo_array_intersect_uassoc, 0)
497 : ZEND_ARG_INFO(0, arr1) /* ARRAY_INFO(0, arg1, 0) */
498 : ZEND_ARG_INFO(0, arr2) /* ARRAY_INFO(0, arg2, 0) */
499 : ZEND_ARG_INFO(0, callback_key_compare_func)
500 : ZEND_END_ARG_INFO()
501 :
502 : ZEND_BEGIN_ARG_INFO(arginfo_array_uintersect_uassoc, 0)
503 : ZEND_ARG_INFO(0, arr1) /* ARRAY_INFO(0, arg1, 0) */
504 : ZEND_ARG_INFO(0, arr2) /* ARRAY_INFO(0, arg2, 0) */
505 : ZEND_ARG_INFO(0, callback_data_compare_func)
506 : ZEND_ARG_INFO(0, callback_key_compare_func)
507 : ZEND_END_ARG_INFO()
508 :
509 : ZEND_BEGIN_ARG_INFO_EX(arginfo_array_diff_key, 0, 0, 2)
510 : ZEND_ARG_INFO(0, arr1) /* ARRAY_INFO(0, arg1, 0) */
511 : ZEND_ARG_INFO(0, arr2) /* ARRAY_INFO(0, arg2, 0) */
512 : ZEND_ARG_INFO(0, ...) /* ARRAY_INFO(0, ..., 0) */
513 : ZEND_END_ARG_INFO()
514 :
515 : ZEND_BEGIN_ARG_INFO(arginfo_array_diff_ukey, 0)
516 : ZEND_ARG_INFO(0, arr1) /* ARRAY_INFO(0, arg1, 0) */
517 : ZEND_ARG_INFO(0, arr2) /* ARRAY_INFO(0, arg2, 0) */
518 : ZEND_ARG_INFO(0, callback_key_comp_func)
519 : ZEND_END_ARG_INFO()
520 :
521 : ZEND_BEGIN_ARG_INFO_EX(arginfo_array_diff, 0, 0, 2)
522 : ZEND_ARG_INFO(0, arr1) /* ARRAY_INFO(0, arg1, 0) */
523 : ZEND_ARG_INFO(0, arr2) /* ARRAY_INFO(0, arg2, 0) */
524 : ZEND_ARG_INFO(0, ...) /* ARRAY_INFO(0, ..., 0) */
525 : ZEND_END_ARG_INFO()
526 :
527 : ZEND_BEGIN_ARG_INFO(arginfo_array_udiff, 0)
528 : ZEND_ARG_INFO(0, arr1)
529 : ZEND_ARG_INFO(0, arr2)
530 : ZEND_ARG_INFO(0, callback_data_comp_func)
531 : ZEND_END_ARG_INFO()
532 :
533 : ZEND_BEGIN_ARG_INFO_EX(arginfo_array_diff_assoc, 0, 0, 2)
534 : ZEND_ARG_INFO(0, arr1) /* ARRAY_INFO(0, arg1, 0) */
535 : ZEND_ARG_INFO(0, arr2) /* ARRAY_INFO(0, arg2, 0) */
536 : ZEND_ARG_INFO(0, ...) /* ARRAY_INFO(0, ..., 0) */
537 : ZEND_END_ARG_INFO()
538 :
539 : ZEND_BEGIN_ARG_INFO(arginfo_array_diff_uassoc, 0)
540 : ZEND_ARG_INFO(0, arr1) /* ARRAY_INFO(0, arg1, 0) */
541 : ZEND_ARG_INFO(0, arr2) /* ARRAY_INFO(0, arg2, 0) */
542 : ZEND_ARG_INFO(0, callback_data_comp_func)
543 : ZEND_END_ARG_INFO()
544 :
545 : ZEND_BEGIN_ARG_INFO(arginfo_array_udiff_assoc, 0)
546 : ZEND_ARG_INFO(0, arr1) /* ARRAY_INFO(0, arg1, 0) */
547 : ZEND_ARG_INFO(0, arr2) /* ARRAY_INFO(0, arg2, 0) */
548 : ZEND_ARG_INFO(0, callback_key_comp_func)
549 : ZEND_END_ARG_INFO()
550 :
551 : ZEND_BEGIN_ARG_INFO(arginfo_array_udiff_uassoc, 0)
552 : ZEND_ARG_INFO(0, arr1) /* ARRAY_INFO(0, arg1, 0) */
553 : ZEND_ARG_INFO(0, arr2) /* ARRAY_INFO(0, arg2, 0) */
554 : ZEND_ARG_INFO(0, callback_data_comp_func)
555 : ZEND_ARG_INFO(0, callback_key_comp_func)
556 : ZEND_END_ARG_INFO()
557 :
558 : ZEND_BEGIN_ARG_INFO_EX(arginfo_array_multisort, ZEND_SEND_PREFER_REF, 0, 1)
559 : ZEND_ARG_INFO(ZEND_SEND_PREFER_REF, arr1) /* ARRAY_INFO(0, arg1, 0) */
560 : ZEND_ARG_INFO(ZEND_SEND_PREFER_REF, SORT_ASC_or_SORT_DESC)
561 : ZEND_ARG_INFO(ZEND_SEND_PREFER_REF, SORT_REGULAR_or_SORT_NUMERIC_or_SORT_STRING)
562 : ZEND_ARG_INFO(ZEND_SEND_PREFER_REF, arr2)
563 : ZEND_ARG_INFO(ZEND_SEND_PREFER_REF, SORT_ASC_or_SORT_DESC)
564 : ZEND_ARG_INFO(ZEND_SEND_PREFER_REF, SORT_REGULAR_or_SORT_NUMERIC_or_SORT_STRING)
565 : ZEND_END_ARG_INFO()
566 :
567 : ZEND_BEGIN_ARG_INFO_EX(arginfo_array_rand, 0, 0, 1)
568 : ZEND_ARG_INFO(0, arg) /* ARRAY_INFO(0, arg, 0) */
569 : ZEND_ARG_INFO(0, num_req)
570 : ZEND_END_ARG_INFO()
571 :
572 : ZEND_BEGIN_ARG_INFO(arginfo_array_sum, 0)
573 : ZEND_ARG_INFO(0, arg) /* ARRAY_INFO(0, arg, 0) */
574 : ZEND_END_ARG_INFO()
575 :
576 : ZEND_BEGIN_ARG_INFO(arginfo_array_product, 0)
577 : ZEND_ARG_INFO(0, arg) /* ARRAY_INFO(0, arg, 0) */
578 : ZEND_END_ARG_INFO()
579 :
580 : ZEND_BEGIN_ARG_INFO_EX(arginfo_array_reduce, 0, 0, 2)
581 : ZEND_ARG_INFO(0, arg) /* ARRAY_INFO(0, arg, 0) */
582 : ZEND_ARG_INFO(0, callback)
583 : ZEND_ARG_INFO(0, initial)
584 : ZEND_END_ARG_INFO()
585 :
586 : ZEND_BEGIN_ARG_INFO_EX(arginfo_array_filter, 0, 0, 1)
587 : ZEND_ARG_INFO(0, arg) /* ARRAY_INFO(0, arg, 0) */
588 : ZEND_ARG_INFO(0, callback)
589 : ZEND_END_ARG_INFO()
590 :
591 : ZEND_BEGIN_ARG_INFO_EX(arginfo_array_map, 0, 0, 2)
592 : ZEND_ARG_INFO(0, callback)
593 : ZEND_ARG_INFO(0, arg) /* ARRAY_INFO(0, arg, 0) */
594 : ZEND_ARG_INFO(0, ...)
595 : ZEND_END_ARG_INFO()
596 :
597 : ZEND_BEGIN_ARG_INFO(arginfo_array_key_exists, 0)
598 : ZEND_ARG_INFO(0, key)
599 : ZEND_ARG_INFO(0, search)
600 : ZEND_END_ARG_INFO()
601 :
602 : ZEND_BEGIN_ARG_INFO_EX(arginfo_array_chunk, 0, 0, 2)
603 : ZEND_ARG_INFO(0, arg) /* ARRAY_INFO(0, arg, 0) */
604 : ZEND_ARG_INFO(0, size)
605 : ZEND_ARG_INFO(0, preserve_keys)
606 : ZEND_END_ARG_INFO()
607 :
608 : ZEND_BEGIN_ARG_INFO(arginfo_array_combine, 0)
609 : ZEND_ARG_INFO(0, keys) /* ARRAY_INFO(0, keys, 0) */
610 : ZEND_ARG_INFO(0, values) /* ARRAY_INFO(0, values, 0) */
611 : ZEND_END_ARG_INFO()
612 : /* }}} */
613 : /* {{{ basic_functions.c */
614 : ZEND_BEGIN_ARG_INFO(arginfo_get_magic_quotes_gpc, 0)
615 : ZEND_END_ARG_INFO()
616 :
617 : ZEND_BEGIN_ARG_INFO(arginfo_get_magic_quotes_runtime, 0)
618 : ZEND_END_ARG_INFO()
619 :
620 : ZEND_BEGIN_ARG_INFO_EX(arginfo_set_magic_quotes_runtime, 0, 0, 1)
621 : ZEND_ARG_INFO(0, new_setting)
622 : ZEND_END_ARG_INFO()
623 :
624 : ZEND_BEGIN_ARG_INFO(arginfo_constant, 0)
625 : ZEND_ARG_INFO(0, const_name)
626 : ZEND_END_ARG_INFO()
627 :
628 : #ifdef HAVE_INET_NTOP
629 : ZEND_BEGIN_ARG_INFO(arginfo_inet_ntop, 0)
630 : ZEND_ARG_INFO(0, in_addr)
631 : ZEND_END_ARG_INFO()
632 : #endif
633 :
634 : #ifdef HAVE_INET_PTON
635 : ZEND_BEGIN_ARG_INFO(arginfo_inet_pton, 0)
636 : ZEND_ARG_INFO(0, ip_address)
637 : ZEND_END_ARG_INFO()
638 : #endif
639 :
640 : ZEND_BEGIN_ARG_INFO(arginfo_ip2long, 0)
641 : ZEND_ARG_INFO(0, ip_address)
642 : ZEND_END_ARG_INFO()
643 :
644 : ZEND_BEGIN_ARG_INFO(arginfo_long2ip, 0)
645 : ZEND_ARG_INFO(0, proper_address)
646 : ZEND_END_ARG_INFO()
647 :
648 : ZEND_BEGIN_ARG_INFO(arginfo_getenv, 0)
649 : ZEND_ARG_INFO(0, varname)
650 : ZEND_END_ARG_INFO()
651 :
652 : #ifdef HAVE_PUTENV
653 : ZEND_BEGIN_ARG_INFO(arginfo_putenv, 0)
654 : ZEND_ARG_INFO(0, setting)
655 : ZEND_END_ARG_INFO()
656 : #endif
657 :
658 : ZEND_BEGIN_ARG_INFO_EX(arginfo_getopt, 0, 0, 1)
659 : ZEND_ARG_INFO(0, options)
660 : ZEND_ARG_INFO(0, opts) /* ARRAY_INFO(0, opts, 1) */
661 : ZEND_END_ARG_INFO()
662 :
663 : ZEND_BEGIN_ARG_INFO(arginfo_flush, 0)
664 : ZEND_END_ARG_INFO()
665 :
666 : ZEND_BEGIN_ARG_INFO(arginfo_sleep, 0)
667 : ZEND_ARG_INFO(0, seconds)
668 : ZEND_END_ARG_INFO()
669 :
670 : ZEND_BEGIN_ARG_INFO(arginfo_usleep, 0)
671 : ZEND_ARG_INFO(0, micro_seconds)
672 : ZEND_END_ARG_INFO()
673 :
674 : #if HAVE_NANOSLEEP
675 : ZEND_BEGIN_ARG_INFO(arginfo_time_nanosleep, 0)
676 : ZEND_ARG_INFO(0, seconds)
677 : ZEND_ARG_INFO(0, nanoseconds)
678 : ZEND_END_ARG_INFO()
679 :
680 : ZEND_BEGIN_ARG_INFO(arginfo_time_sleep_until, 0)
681 : ZEND_ARG_INFO(0, timestamp)
682 : ZEND_END_ARG_INFO()
683 : #endif
684 :
685 : ZEND_BEGIN_ARG_INFO(arginfo_get_current_user, 0)
686 : ZEND_END_ARG_INFO()
687 :
688 : ZEND_BEGIN_ARG_INFO(arginfo_get_cfg_var, 0)
689 : ZEND_ARG_INFO(0, option_name)
690 : ZEND_END_ARG_INFO()
691 :
692 : ZEND_BEGIN_ARG_INFO_EX(arginfo_error_log, 0, 0, 1)
693 : ZEND_ARG_INFO(0, message)
694 : ZEND_ARG_INFO(0, message_type)
695 : ZEND_ARG_INFO(0, destination)
696 : ZEND_ARG_INFO(0, extra_headers)
697 : ZEND_END_ARG_INFO()
698 :
699 : ZEND_BEGIN_ARG_INFO_EX(arginfo_error_get_last, 0, 0, 0)
700 : ZEND_END_ARG_INFO()
701 :
702 : ZEND_BEGIN_ARG_INFO_EX(arginfo_call_user_func, 0, 0, 1)
703 : ZEND_ARG_INFO(0, function_name)
704 : ZEND_ARG_INFO(0, parmeter)
705 : ZEND_ARG_INFO(0, ...)
706 : ZEND_END_ARG_INFO()
707 :
708 : ZEND_BEGIN_ARG_INFO_EX(arginfo_call_user_func_array, 0, 0, 2)
709 : ZEND_ARG_INFO(0, function_name)
710 : ZEND_ARG_INFO(0, parameters) /* ARRAY_INFO(0, parameters, 1) */
711 : ZEND_END_ARG_INFO()
712 :
713 : ZEND_BEGIN_ARG_INFO_EX(arginfo_call_user_method, 0, 0, 2)
714 : ZEND_ARG_INFO(0, method_name)
715 : ZEND_ARG_INFO(1, object)
716 : ZEND_ARG_INFO(0, parameter)
717 : ZEND_ARG_INFO(0, ...)
718 : ZEND_END_ARG_INFO()
719 :
720 : ZEND_BEGIN_ARG_INFO(arginfo_call_user_method_array, 0)
721 : ZEND_ARG_INFO(0, method_name)
722 : ZEND_ARG_INFO(1, object)
723 : ZEND_ARG_INFO(0, params) /* ARRAY_INFO(0, params, 1) */
724 : ZEND_END_ARG_INFO()
725 :
726 : ZEND_BEGIN_ARG_INFO_EX(arginfo_forward_static_call, 0, 0, 1)
727 : ZEND_ARG_INFO(0, function_name)
728 : ZEND_ARG_INFO(0, parameter)
729 : ZEND_ARG_INFO(0, ...)
730 : ZEND_END_ARG_INFO()
731 :
732 : ZEND_BEGIN_ARG_INFO_EX(arginfo_forward_static_call_array, 0, 0, 2)
733 : ZEND_ARG_INFO(0, function_name)
734 : ZEND_ARG_INFO(0, parameters) /* ARRAY_INFO(0, parameters, 1) */
735 : ZEND_END_ARG_INFO()
736 :
737 : ZEND_BEGIN_ARG_INFO(arginfo_register_shutdown_function, 0)
738 : ZEND_ARG_INFO(0, function_name)
739 : ZEND_END_ARG_INFO()
740 :
741 : ZEND_BEGIN_ARG_INFO_EX(arginfo_highlight_file, 0, 0, 1)
742 : ZEND_ARG_INFO(0, file_name)
743 : ZEND_ARG_INFO(0, return)
744 : ZEND_END_ARG_INFO()
745 :
746 : ZEND_BEGIN_ARG_INFO(arginfo_php_strip_whitespace, 0)
747 : ZEND_ARG_INFO(0, file_name)
748 : ZEND_END_ARG_INFO()
749 :
750 : ZEND_BEGIN_ARG_INFO_EX(arginfo_highlight_string, 0, 0, 1)
751 : ZEND_ARG_INFO(0, string)
752 : ZEND_ARG_INFO(0, return)
753 : ZEND_END_ARG_INFO()
754 :
755 : ZEND_BEGIN_ARG_INFO(arginfo_ini_get, 0)
756 : ZEND_ARG_INFO(0, varname)
757 : ZEND_END_ARG_INFO()
758 :
759 : ZEND_BEGIN_ARG_INFO_EX(arginfo_ini_get_all, 0, 0, 0)
760 : ZEND_ARG_INFO(0, extension)
761 : ZEND_END_ARG_INFO()
762 :
763 : ZEND_BEGIN_ARG_INFO(arginfo_ini_set, 0)
764 : ZEND_ARG_INFO(0, varname)
765 : ZEND_ARG_INFO(0, newvalue)
766 : ZEND_END_ARG_INFO()
767 :
768 : ZEND_BEGIN_ARG_INFO(arginfo_ini_restore, 0)
769 : ZEND_ARG_INFO(0, varname)
770 : ZEND_END_ARG_INFO()
771 :
772 : ZEND_BEGIN_ARG_INFO(arginfo_set_include_path, 0)
773 : ZEND_ARG_INFO(0, new_include_path)
774 : ZEND_END_ARG_INFO()
775 :
776 : ZEND_BEGIN_ARG_INFO(arginfo_get_include_path, 0)
777 : ZEND_END_ARG_INFO()
778 :
779 : ZEND_BEGIN_ARG_INFO(arginfo_restore_include_path, 0)
780 : ZEND_END_ARG_INFO()
781 :
782 : ZEND_BEGIN_ARG_INFO_EX(arginfo_print_r, 0, 0, 1)
783 : ZEND_ARG_INFO(0, var)
784 : ZEND_ARG_INFO(0, return)
785 : ZEND_END_ARG_INFO()
786 :
787 : ZEND_BEGIN_ARG_INFO(arginfo_connection_aborted, 0)
788 : ZEND_END_ARG_INFO()
789 :
790 : ZEND_BEGIN_ARG_INFO(arginfo_connection_status, 0)
791 : ZEND_END_ARG_INFO()
792 :
793 : ZEND_BEGIN_ARG_INFO_EX(arginfo_ignore_user_abort, 0, 0, 0)
794 : ZEND_ARG_INFO(0, value)
795 : ZEND_END_ARG_INFO()
796 :
797 : #if HAVE_GETSERVBYNAME
798 : ZEND_BEGIN_ARG_INFO(arginfo_getservbyname, 0)
799 : ZEND_ARG_INFO(0, service)
800 : ZEND_ARG_INFO(0, protocol)
801 : ZEND_END_ARG_INFO()
802 : #endif
803 :
804 : #if HAVE_GETSERVBYPORT
805 : ZEND_BEGIN_ARG_INFO(arginfo_getservbyport, 0)
806 : ZEND_ARG_INFO(0, port)
807 : ZEND_ARG_INFO(0, protocol)
808 : ZEND_END_ARG_INFO()
809 : #endif
810 :
811 : #if HAVE_GETPROTOBYNAME
812 : ZEND_BEGIN_ARG_INFO(arginfo_getprotobyname, 0)
813 : ZEND_ARG_INFO(0, name)
814 : ZEND_END_ARG_INFO()
815 : #endif
816 :
817 : #if HAVE_GETPROTOBYNUMBER
818 : ZEND_BEGIN_ARG_INFO(arginfo_getprotobynumber, 0)
819 : ZEND_ARG_INFO(0, proto)
820 : ZEND_END_ARG_INFO()
821 : #endif
822 :
823 : ZEND_BEGIN_ARG_INFO_EX(arginfo_register_tick_function, 0, 0, 1)
824 : ZEND_ARG_INFO(0, function_name)
825 : ZEND_ARG_INFO(0, arg)
826 : ZEND_ARG_INFO(0, ...)
827 : ZEND_END_ARG_INFO()
828 :
829 : ZEND_BEGIN_ARG_INFO(arginfo_unregister_tick_function, 0)
830 : ZEND_ARG_INFO(0, function_name)
831 : ZEND_END_ARG_INFO()
832 :
833 : ZEND_BEGIN_ARG_INFO(arginfo_is_uploaded_file, 0)
834 : ZEND_ARG_INFO(0, path)
835 : ZEND_END_ARG_INFO()
836 :
837 : ZEND_BEGIN_ARG_INFO(arginfo_move_uploaded_file, 0)
838 : ZEND_ARG_INFO(0, path)
839 : ZEND_ARG_INFO(0, new_path)
840 : ZEND_END_ARG_INFO()
841 :
842 : ZEND_BEGIN_ARG_INFO_EX(arginfo_parse_ini_file, 0, 0, 1)
843 : ZEND_ARG_INFO(0, filename)
844 : ZEND_ARG_INFO(0, process_sections)
845 : ZEND_ARG_INFO(0, scanner_mode)
846 : ZEND_END_ARG_INFO()
847 :
848 : ZEND_BEGIN_ARG_INFO_EX(arginfo_parse_ini_string, 0, 0, 1)
849 : ZEND_ARG_INFO(0, ini_string)
850 : ZEND_ARG_INFO(0, process_sections)
851 : ZEND_ARG_INFO(0, scanner_mode)
852 : ZEND_END_ARG_INFO()
853 :
854 : #if ZEND_DEBUG
855 : ZEND_BEGIN_ARG_INFO(arginfo_config_get_hash, 0)
856 : ZEND_END_ARG_INFO()
857 : #endif
858 :
859 : ZEND_BEGIN_ARG_INFO_EX(arginfo_import_request_variables, 0, 0, 1)
860 : ZEND_ARG_INFO(0, types)
861 : ZEND_ARG_INFO(0, prefix)
862 : ZEND_END_ARG_INFO()
863 :
864 : #ifdef HAVE_GETLOADAVG
865 : ZEND_BEGIN_ARG_INFO(arginfo_sys_getloadavg, 0)
866 : ZEND_END_ARG_INFO()
867 : #endif
868 : /* }}} */
869 : /* {{{ assert.c */
870 : ZEND_BEGIN_ARG_INFO(arginfo_assert, 0)
871 : ZEND_ARG_INFO(0, assertion)
872 : ZEND_END_ARG_INFO()
873 :
874 : ZEND_BEGIN_ARG_INFO_EX(arginfo_assert_options, 0, 0, 1)
875 : ZEND_ARG_INFO(0, what)
876 : ZEND_ARG_INFO(0, value)
877 : ZEND_END_ARG_INFO()
878 : /* }}} */
879 : /* {{{ base64.c */
880 : ZEND_BEGIN_ARG_INFO(arginfo_base64_encode, 0)
881 : ZEND_ARG_INFO(0, str)
882 : ZEND_END_ARG_INFO()
883 :
884 : ZEND_BEGIN_ARG_INFO_EX(arginfo_base64_decode, 0, 0, 1)
885 : ZEND_ARG_INFO(0, str)
886 : ZEND_ARG_INFO(0, strict)
887 : ZEND_END_ARG_INFO()
888 :
889 : /* }}} */
890 : /* {{{ browscap.c */
891 : ZEND_BEGIN_ARG_INFO_EX(arginfo_get_browser, 0, 0, 0)
892 : ZEND_ARG_INFO(0, browser_name)
893 : ZEND_ARG_INFO(0, return_array)
894 : ZEND_END_ARG_INFO()
895 : /* }}} */
896 : /* {{{ crc32.c */
897 : ZEND_BEGIN_ARG_INFO(arginfo_crc32, 0)
898 : ZEND_ARG_INFO(0, str)
899 : ZEND_END_ARG_INFO()
900 :
901 : /* }}} */
902 : /* {{{ crypt.c */
903 : #if HAVE_CRYPT
904 : ZEND_BEGIN_ARG_INFO_EX(arginfo_crypt, 0, 0, 1)
905 : ZEND_ARG_INFO(0, str)
906 : ZEND_ARG_INFO(0, salt)
907 : ZEND_END_ARG_INFO()
908 : #endif
909 : /* }}} */
910 : /* {{{ cyr_convert.c */
911 : ZEND_BEGIN_ARG_INFO(arginfo_convert_cyr_string, 0)
912 : ZEND_ARG_INFO(0, str)
913 : ZEND_ARG_INFO(0, from)
914 : ZEND_ARG_INFO(0, to)
915 : ZEND_END_ARG_INFO()
916 :
917 : /* }}} */
918 : /* {{{ datetime.c */
919 : #if HAVE_STRPTIME
920 : ZEND_BEGIN_ARG_INFO(arginfo_strptime, 0)
921 : ZEND_ARG_INFO(0, timestamp)
922 : ZEND_ARG_INFO(0, format)
923 : ZEND_END_ARG_INFO()
924 : #endif
925 : /* }}} */
926 : /* {{{ dir.c */
927 : ZEND_BEGIN_ARG_INFO_EX(arginfo_opendir, 0, 0, 1)
928 : ZEND_ARG_INFO(0, path)
929 : ZEND_ARG_INFO(0, context)
930 : ZEND_END_ARG_INFO()
931 :
932 : ZEND_BEGIN_ARG_INFO_EX(arginfo_dir, 0, 0, 1)
933 : ZEND_ARG_INFO(0, directory)
934 : ZEND_ARG_INFO(0, context)
935 : ZEND_END_ARG_INFO()
936 :
937 : ZEND_BEGIN_ARG_INFO_EX(arginfo_closedir, 0, 0, 0)
938 : ZEND_ARG_INFO(0, dir_handle)
939 : ZEND_END_ARG_INFO()
940 :
941 : #if defined(HAVE_CHROOT) && !defined(ZTS) && ENABLE_CHROOT_FUNC
942 : ZEND_BEGIN_ARG_INFO(arginfo_chroot, 0)
943 : ZEND_ARG_INFO(0, directory)
944 : ZEND_END_ARG_INFO()
945 : #endif
946 :
947 : ZEND_BEGIN_ARG_INFO(arginfo_chdir, 0)
948 : ZEND_ARG_INFO(0, directory)
949 : ZEND_END_ARG_INFO()
950 :
951 : ZEND_BEGIN_ARG_INFO(arginfo_getcwd, 0)
952 : ZEND_END_ARG_INFO()
953 :
954 : ZEND_BEGIN_ARG_INFO_EX(arginfo_rewinddir, 0, 0, 0)
955 : ZEND_ARG_INFO(0, dir_handle)
956 : ZEND_END_ARG_INFO()
957 :
958 : ZEND_BEGIN_ARG_INFO_EX(arginfo_readdir, 0, 0, 0)
959 : ZEND_ARG_INFO(0, dir_handle)
960 : ZEND_END_ARG_INFO()
961 :
962 : #ifdef HAVE_GLOB
963 : ZEND_BEGIN_ARG_INFO_EX(arginfo_glob, 0, 0, 1)
964 : ZEND_ARG_INFO(0, pattern)
965 : ZEND_ARG_INFO(0, flags)
966 : ZEND_END_ARG_INFO()
967 : #endif
968 :
969 : ZEND_BEGIN_ARG_INFO_EX(arginfo_scandir, 0, 0, 1)
970 : ZEND_ARG_INFO(0, dir)
971 : ZEND_ARG_INFO(0, sorting_order)
972 : ZEND_ARG_INFO(0, context)
973 : ZEND_END_ARG_INFO()
974 : /* }}} */
975 : /* {{{ arginfo ext/standard/dl.c */
976 : ZEND_BEGIN_ARG_INFO(arginfo_dl, 0)
977 : ZEND_ARG_INFO(0, extension_filename)
978 : ZEND_END_ARG_INFO()
979 : /* }}} */
980 : /* {{{ dns.c */
981 : ZEND_BEGIN_ARG_INFO(arginfo_gethostbyaddr, 0)
982 : ZEND_ARG_INFO(0, ip_address)
983 : ZEND_END_ARG_INFO()
984 :
985 : ZEND_BEGIN_ARG_INFO(arginfo_gethostbyname, 0)
986 : ZEND_ARG_INFO(0, hostname)
987 : ZEND_END_ARG_INFO()
988 :
989 : ZEND_BEGIN_ARG_INFO(arginfo_gethostbynamel, 0)
990 : ZEND_ARG_INFO(0, hostname)
991 : ZEND_END_ARG_INFO()
992 :
993 : #ifdef HAVE_GETHOSTNAME
994 : ZEND_BEGIN_ARG_INFO(arginfo_gethostname, 0)
995 : ZEND_END_ARG_INFO()
996 : #endif
997 :
998 : #if defined(PHP_WIN32) || (HAVE_DNS_SEARCH_FUNC && !(defined(__BEOS__) || defined(NETWARE)))
999 : ZEND_BEGIN_ARG_INFO_EX(arginfo_dns_check_record, 0, 0, 1)
1000 : ZEND_ARG_INFO(0, host)
1001 : ZEND_ARG_INFO(0, type)
1002 : ZEND_END_ARG_INFO()
1003 :
1004 : # if defined(PHP_WIN32) || HAVE_FULL_DNS_FUNCS
1005 : ZEND_BEGIN_ARG_INFO_EX(arginfo_dns_get_record, 1, 0, 1)
1006 : ZEND_ARG_INFO(0, hostname)
1007 : ZEND_ARG_INFO(0, type)
1008 : ZEND_ARG_INFO(1, authns) /* ARRAY_INFO(1, authns, 1) */
1009 : ZEND_ARG_INFO(1, addtl) /* ARRAY_INFO(1, addtl, 1) */
1010 : ZEND_END_ARG_INFO()
1011 :
1012 : ZEND_BEGIN_ARG_INFO_EX(arginfo_dns_get_mx, 0, 0, 2)
1013 : ZEND_ARG_INFO(0, hostname)
1014 : ZEND_ARG_INFO(1, mxhosts) /* ARRAY_INFO(1, mxhosts, 1) */
1015 : ZEND_ARG_INFO(1, weight) /* ARRAY_INFO(1, weight, 1) */
1016 : ZEND_END_ARG_INFO()
1017 : # endif
1018 :
1019 : #endif /* defined(PHP_WIN32) || (HAVE_DNS_SEARCH_FUNC && !(defined(__BEOS__) || defined(NETWARE))) */
1020 : /* }}} */
1021 :
1022 : /* {{{ exec.c */
1023 : ZEND_BEGIN_ARG_INFO_EX(arginfo_exec, 0, 0, 1)
1024 : ZEND_ARG_INFO(0, command)
1025 : ZEND_ARG_INFO(1, output) /* ARRAY_INFO(1, output, 1) */
1026 : ZEND_ARG_INFO(1, return_value)
1027 : ZEND_END_ARG_INFO()
1028 :
1029 : ZEND_BEGIN_ARG_INFO_EX(arginfo_system, 0, 0, 1)
1030 : ZEND_ARG_INFO(0, command)
1031 : ZEND_ARG_INFO(1, return_value)
1032 : ZEND_END_ARG_INFO()
1033 :
1034 : ZEND_BEGIN_ARG_INFO_EX(arginfo_passthru, 0, 0, 1)
1035 : ZEND_ARG_INFO(0, command)
1036 : ZEND_ARG_INFO(1, return_value)
1037 : ZEND_END_ARG_INFO()
1038 :
1039 : ZEND_BEGIN_ARG_INFO(arginfo_escapeshellcmd, 0)
1040 : ZEND_ARG_INFO(0, command)
1041 : ZEND_END_ARG_INFO()
1042 :
1043 : ZEND_BEGIN_ARG_INFO(arginfo_escapeshellarg, 0)
1044 : ZEND_ARG_INFO(0, arg)
1045 : ZEND_END_ARG_INFO()
1046 :
1047 : ZEND_BEGIN_ARG_INFO(arginfo_shell_exec, 0)
1048 : ZEND_ARG_INFO(0, cmd)
1049 : ZEND_END_ARG_INFO()
1050 :
1051 : #ifdef HAVE_NICE
1052 : ZEND_BEGIN_ARG_INFO(arginfo_proc_nice, 0)
1053 : ZEND_ARG_INFO(0, priority)
1054 : ZEND_END_ARG_INFO()
1055 : #endif
1056 : /* }}} */
1057 : /* {{{ file.c */
1058 : ZEND_BEGIN_ARG_INFO_EX(arginfo_flock, 0, 0, 2)
1059 : ZEND_ARG_INFO(0, fp)
1060 : ZEND_ARG_INFO(0, operation)
1061 : ZEND_ARG_INFO(1, wouldblock)
1062 : ZEND_END_ARG_INFO()
1063 :
1064 : ZEND_BEGIN_ARG_INFO_EX(arginfo_get_meta_tags, 0, 0, 1)
1065 : ZEND_ARG_INFO(0, filename)
1066 : ZEND_ARG_INFO(0, use_include_path)
1067 : ZEND_END_ARG_INFO()
1068 :
1069 : ZEND_BEGIN_ARG_INFO_EX(arginfo_file_get_contents, 0, 0, 1)
1070 : ZEND_ARG_INFO(0, filename)
1071 : ZEND_ARG_INFO(0, flags)
1072 : ZEND_ARG_INFO(0, context)
1073 : ZEND_ARG_INFO(0, offset)
1074 : ZEND_ARG_INFO(0, maxlen)
1075 : ZEND_END_ARG_INFO()
1076 :
1077 : ZEND_BEGIN_ARG_INFO_EX(arginfo_file_put_contents, 0, 0, 2)
1078 : ZEND_ARG_INFO(0, filename)
1079 : ZEND_ARG_INFO(0, data)
1080 : ZEND_ARG_INFO(0, flags)
1081 : ZEND_ARG_INFO(0, context)
1082 : ZEND_END_ARG_INFO()
1083 :
1084 : ZEND_BEGIN_ARG_INFO_EX(arginfo_file, 0, 0, 1)
1085 : ZEND_ARG_INFO(0, filename)
1086 : ZEND_ARG_INFO(0, flags)
1087 : ZEND_ARG_INFO(0, context)
1088 : ZEND_END_ARG_INFO()
1089 :
1090 : ZEND_BEGIN_ARG_INFO(arginfo_tempnam, 0)
1091 : ZEND_ARG_INFO(0, dir)
1092 : ZEND_ARG_INFO(0, prefix)
1093 : ZEND_END_ARG_INFO()
1094 :
1095 : ZEND_BEGIN_ARG_INFO(arginfo_tmpfile, 0)
1096 : ZEND_END_ARG_INFO()
1097 :
1098 : ZEND_BEGIN_ARG_INFO_EX(arginfo_fopen, 0, 0, 2)
1099 : ZEND_ARG_INFO(0, filename)
1100 : ZEND_ARG_INFO(0, mode)
1101 : ZEND_ARG_INFO(0, use_include_path)
1102 : ZEND_ARG_INFO(0, context)
1103 : ZEND_END_ARG_INFO()
1104 :
1105 : ZEND_BEGIN_ARG_INFO(arginfo_fclose, 0)
1106 : ZEND_ARG_INFO(0, fp)
1107 : ZEND_END_ARG_INFO()
1108 :
1109 : ZEND_BEGIN_ARG_INFO(arginfo_popen, 0)
1110 : ZEND_ARG_INFO(0, command)
1111 : ZEND_ARG_INFO(0, mode)
1112 : ZEND_END_ARG_INFO()
1113 :
1114 : ZEND_BEGIN_ARG_INFO(arginfo_pclose, 0)
1115 : ZEND_ARG_INFO(0, fp)
1116 : ZEND_END_ARG_INFO()
1117 :
1118 : ZEND_BEGIN_ARG_INFO(arginfo_feof, 0)
1119 : ZEND_ARG_INFO(0, fp)
1120 : ZEND_END_ARG_INFO()
1121 :
1122 : ZEND_BEGIN_ARG_INFO_EX(arginfo_fgets, 0, 0, 1)
1123 : ZEND_ARG_INFO(0, fp)
1124 : ZEND_ARG_INFO(0, length)
1125 : ZEND_END_ARG_INFO()
1126 :
1127 : ZEND_BEGIN_ARG_INFO(arginfo_fgetc, 0)
1128 : ZEND_ARG_INFO(0, fp)
1129 : ZEND_END_ARG_INFO()
1130 :
1131 : ZEND_BEGIN_ARG_INFO_EX(arginfo_fgetss, 0, 0, 1)
1132 : ZEND_ARG_INFO(0, fp)
1133 : ZEND_ARG_INFO(0, length)
1134 : ZEND_ARG_INFO(0, allowable_tags)
1135 : ZEND_END_ARG_INFO()
1136 :
1137 : ZEND_BEGIN_ARG_INFO_EX(arginfo_fscanf, 1, 0, 2)
1138 : ZEND_ARG_INFO(0, stream)
1139 : ZEND_ARG_INFO(0, format)
1140 : ZEND_ARG_INFO(1, ...)
1141 : ZEND_END_ARG_INFO()
1142 :
1143 : ZEND_BEGIN_ARG_INFO_EX(arginfo_fwrite, 0, 0, 2)
1144 : ZEND_ARG_INFO(0, fp)
1145 : ZEND_ARG_INFO(0, str)
1146 : ZEND_ARG_INFO(0, length)
1147 : ZEND_END_ARG_INFO()
1148 :
1149 : ZEND_BEGIN_ARG_INFO(arginfo_fflush, 0)
1150 : ZEND_ARG_INFO(0, fp)
1151 : ZEND_END_ARG_INFO()
1152 :
1153 : ZEND_BEGIN_ARG_INFO(arginfo_rewind, 0)
1154 : ZEND_ARG_INFO(0, fp)
1155 : ZEND_END_ARG_INFO()
1156 :
1157 : ZEND_BEGIN_ARG_INFO(arginfo_ftell, 0)
1158 : ZEND_ARG_INFO(0, fp)
1159 : ZEND_END_ARG_INFO()
1160 :
1161 : ZEND_BEGIN_ARG_INFO_EX(arginfo_fseek, 0, 0, 2)
1162 : ZEND_ARG_INFO(0, fp)
1163 : ZEND_ARG_INFO(0, offset)
1164 : ZEND_ARG_INFO(0, whence)
1165 : ZEND_END_ARG_INFO()
1166 :
1167 : ZEND_BEGIN_ARG_INFO_EX(arginfo_mkdir, 0, 0, 1)
1168 : ZEND_ARG_INFO(0, pathname)
1169 : ZEND_ARG_INFO(0, mode)
1170 : ZEND_ARG_INFO(0, recursive)
1171 : ZEND_ARG_INFO(0, context)
1172 : ZEND_END_ARG_INFO()
1173 :
1174 : ZEND_BEGIN_ARG_INFO_EX(arginfo_rmdir, 0, 0, 1)
1175 : ZEND_ARG_INFO(0, dirname)
1176 : ZEND_ARG_INFO(0, context)
1177 : ZEND_END_ARG_INFO()
1178 :
1179 : ZEND_BEGIN_ARG_INFO_EX(arginfo_readfile, 0, 0, 1)
1180 : ZEND_ARG_INFO(0, filename)
1181 : ZEND_ARG_INFO(0, flags)
1182 : ZEND_ARG_INFO(0, context)
1183 : ZEND_END_ARG_INFO()
1184 :
1185 : ZEND_BEGIN_ARG_INFO_EX(arginfo_umask, 0, 0, 0)
1186 : ZEND_ARG_INFO(0, mask)
1187 : ZEND_END_ARG_INFO()
1188 :
1189 : ZEND_BEGIN_ARG_INFO(arginfo_fpassthru, 0)
1190 : ZEND_ARG_INFO(0, fp)
1191 : ZEND_END_ARG_INFO()
1192 :
1193 : ZEND_BEGIN_ARG_INFO_EX(arginfo_rename, 0, 0, 2)
1194 : ZEND_ARG_INFO(0, old_name)
1195 : ZEND_ARG_INFO(0, new_name)
1196 : ZEND_ARG_INFO(0, context)
1197 : ZEND_END_ARG_INFO()
1198 :
1199 : ZEND_BEGIN_ARG_INFO_EX(arginfo_unlink, 0, 0, 1)
1200 : ZEND_ARG_INFO(0, filename)
1201 : ZEND_ARG_INFO(0, context)
1202 : ZEND_END_ARG_INFO()
1203 :
1204 : ZEND_BEGIN_ARG_INFO(arginfo_ftruncate, 0)
1205 : ZEND_ARG_INFO(0, fp)
1206 : ZEND_ARG_INFO(0, size)
1207 : ZEND_END_ARG_INFO()
1208 :
1209 : ZEND_BEGIN_ARG_INFO(arginfo_fstat, 0)
1210 : ZEND_ARG_INFO(0, fp)
1211 : ZEND_END_ARG_INFO()
1212 : ZEND_BEGIN_ARG_INFO(arginfo_copy, 0)
1213 : ZEND_ARG_INFO(0, source_file)
1214 : ZEND_ARG_INFO(0, destination_file)
1215 : ZEND_END_ARG_INFO()
1216 :
1217 : ZEND_BEGIN_ARG_INFO(arginfo_fread, 0)
1218 : ZEND_ARG_INFO(0, fp)
1219 : ZEND_ARG_INFO(0, length)
1220 : ZEND_END_ARG_INFO()
1221 :
1222 : ZEND_BEGIN_ARG_INFO_EX(arginfo_fputcsv, 0, 0, 2)
1223 : ZEND_ARG_INFO(0, fp)
1224 : ZEND_ARG_INFO(0, fields) /* ARRAY_INFO(0, fields, 1) */
1225 : ZEND_ARG_INFO(0, delimiter)
1226 : ZEND_ARG_INFO(0, enclosure)
1227 : ZEND_END_ARG_INFO()
1228 :
1229 : ZEND_BEGIN_ARG_INFO_EX(arginfo_fgetcsv, 0, 0, 1)
1230 : ZEND_ARG_INFO(0, fp)
1231 : ZEND_ARG_INFO(0, length)
1232 : ZEND_ARG_INFO(0, delimiter)
1233 : ZEND_ARG_INFO(0, enclosure)
1234 : ZEND_END_ARG_INFO()
1235 :
1236 : #if (!defined(__BEOS__) && !defined(NETWARE) && HAVE_REALPATH) || defined(ZTS)
1237 : ZEND_BEGIN_ARG_INFO(arginfo_realpath, 0)
1238 : ZEND_ARG_INFO(0, path)
1239 : ZEND_END_ARG_INFO()
1240 : #endif
1241 :
1242 : #ifdef HAVE_FNMATCH
1243 : ZEND_BEGIN_ARG_INFO_EX(arginfo_fnmatch, 0, 0, 2)
1244 : ZEND_ARG_INFO(0, pattern)
1245 : ZEND_ARG_INFO(0, filename)
1246 : ZEND_ARG_INFO(0, flags)
1247 : ZEND_END_ARG_INFO()
1248 : #endif
1249 :
1250 : ZEND_BEGIN_ARG_INFO(arginfo_sys_get_temp_dir, 0)
1251 : ZEND_END_ARG_INFO()
1252 : /* }}} */
1253 : /* {{{ filestat.c */
1254 : ZEND_BEGIN_ARG_INFO(arginfo_disk_total_space, 0)
1255 : ZEND_ARG_INFO(0, path)
1256 : ZEND_END_ARG_INFO()
1257 :
1258 : ZEND_BEGIN_ARG_INFO(arginfo_disk_free_space, 0)
1259 : ZEND_ARG_INFO(0, path)
1260 : ZEND_END_ARG_INFO()
1261 :
1262 : #ifndef NETWARE
1263 : ZEND_BEGIN_ARG_INFO(arginfo_chgrp, 0)
1264 : ZEND_ARG_INFO(0, filename)
1265 : ZEND_ARG_INFO(0, group)
1266 : ZEND_END_ARG_INFO()
1267 :
1268 : ZEND_BEGIN_ARG_INFO(arginfo_chown, 0)
1269 : ZEND_ARG_INFO(0, filename)
1270 : ZEND_ARG_INFO(0, user)
1271 : ZEND_END_ARG_INFO()
1272 : #endif
1273 :
1274 : #if HAVE_LCHOWN
1275 : ZEND_BEGIN_ARG_INFO(arginfo_lchgrp, 0)
1276 : ZEND_ARG_INFO(0, filename)
1277 : ZEND_ARG_INFO(0, group)
1278 : ZEND_END_ARG_INFO()
1279 :
1280 : ZEND_BEGIN_ARG_INFO(arginfo_lchown, 0)
1281 : ZEND_ARG_INFO(0, filename)
1282 : ZEND_ARG_INFO(0, user)
1283 : ZEND_END_ARG_INFO()
1284 : #endif
1285 :
1286 : ZEND_BEGIN_ARG_INFO(arginfo_chmod, 0)
1287 : ZEND_ARG_INFO(0, filename)
1288 : ZEND_ARG_INFO(0, mode)
1289 : ZEND_END_ARG_INFO()
1290 :
1291 : #if HAVE_UTIME
1292 : ZEND_BEGIN_ARG_INFO_EX(arginfo_touch, 0, 0, 1)
1293 : ZEND_ARG_INFO(0, filename)
1294 : ZEND_ARG_INFO(0, time)
1295 : ZEND_ARG_INFO(0, atime)
1296 : ZEND_END_ARG_INFO()
1297 : #endif
1298 :
1299 : ZEND_BEGIN_ARG_INFO_EX(arginfo_clearstatcache, 0, 0, 0)
1300 : ZEND_ARG_INFO(0, clear_realpath_cache)
1301 : ZEND_ARG_INFO(0, filename)
1302 : ZEND_END_ARG_INFO()
1303 :
1304 : ZEND_BEGIN_ARG_INFO(arginfo_fileperms, 0)
1305 : ZEND_ARG_INFO(0, filename)
1306 : ZEND_END_ARG_INFO()
1307 :
1308 : ZEND_BEGIN_ARG_INFO(arginfo_fileinode, 0)
1309 : ZEND_ARG_INFO(0, filename)
1310 : ZEND_END_ARG_INFO()
1311 :
1312 : ZEND_BEGIN_ARG_INFO(arginfo_filesize, 0)
1313 : ZEND_ARG_INFO(0, filename)
1314 : ZEND_END_ARG_INFO()
1315 :
1316 : ZEND_BEGIN_ARG_INFO(arginfo_fileowner, 0)
1317 : ZEND_ARG_INFO(0, filename)
1318 : ZEND_END_ARG_INFO()
1319 :
1320 : ZEND_BEGIN_ARG_INFO(arginfo_filegroup, 0)
1321 : ZEND_ARG_INFO(0, filename)
1322 : ZEND_END_ARG_INFO()
1323 :
1324 : ZEND_BEGIN_ARG_INFO(arginfo_fileatime, 0)
1325 : ZEND_ARG_INFO(0, filename)
1326 : ZEND_END_ARG_INFO()
1327 :
1328 : ZEND_BEGIN_ARG_INFO(arginfo_filemtime, 0)
1329 : ZEND_ARG_INFO(0, filename)
1330 : ZEND_END_ARG_INFO()
1331 :
1332 : ZEND_BEGIN_ARG_INFO(arginfo_filectime, 0)
1333 : ZEND_ARG_INFO(0, filename)
1334 : ZEND_END_ARG_INFO()
1335 :
1336 : ZEND_BEGIN_ARG_INFO(arginfo_filetype, 0)
1337 : ZEND_ARG_INFO(0, filename)
1338 : ZEND_END_ARG_INFO()
1339 :
1340 : ZEND_BEGIN_ARG_INFO(arginfo_is_writable, 0)
1341 : ZEND_ARG_INFO(0, filename)
1342 : ZEND_END_ARG_INFO()
1343 :
1344 : ZEND_BEGIN_ARG_INFO(arginfo_is_readable, 0)
1345 : ZEND_ARG_INFO(0, filename)
1346 : ZEND_END_ARG_INFO()
1347 :
1348 : ZEND_BEGIN_ARG_INFO(arginfo_is_executable, 0)
1349 : ZEND_ARG_INFO(0, filename)
1350 : ZEND_END_ARG_INFO()
1351 :
1352 : ZEND_BEGIN_ARG_INFO(arginfo_is_file, 0)
1353 : ZEND_ARG_INFO(0, filename)
1354 : ZEND_END_ARG_INFO()
1355 :
1356 : ZEND_BEGIN_ARG_INFO(arginfo_is_dir, 0)
1357 : ZEND_ARG_INFO(0, filename)
1358 : ZEND_END_ARG_INFO()
1359 :
1360 : ZEND_BEGIN_ARG_INFO(arginfo_is_link, 0)
1361 : ZEND_ARG_INFO(0, filename)
1362 : ZEND_END_ARG_INFO()
1363 :
1364 : ZEND_BEGIN_ARG_INFO(arginfo_file_exists, 0)
1365 : ZEND_ARG_INFO(0, filename)
1366 : ZEND_END_ARG_INFO()
1367 :
1368 : ZEND_BEGIN_ARG_INFO(arginfo_lstat, 0)
1369 : ZEND_ARG_INFO(0, filename)
1370 : ZEND_END_ARG_INFO()
1371 :
1372 : ZEND_BEGIN_ARG_INFO(arginfo_stat, 0)
1373 : ZEND_ARG_INFO(0, filename)
1374 : ZEND_END_ARG_INFO()
1375 : /* }}} */
1376 : /* {{{ formatted_print.c */
1377 : ZEND_BEGIN_ARG_INFO_EX(arginfo_sprintf, 0, 0, 2)
1378 : ZEND_ARG_INFO(0, format)
1379 : ZEND_ARG_INFO(0, arg1)
1380 : ZEND_ARG_INFO(0, ...)
1381 : ZEND_END_ARG_INFO()
1382 :
1383 : ZEND_BEGIN_ARG_INFO(arginfo_vsprintf, 0)
1384 : ZEND_ARG_INFO(0, format)
1385 : ZEND_ARG_INFO(0, args) /* ARRAY_INFO(0, args, 1) */
1386 : ZEND_END_ARG_INFO()
1387 :
1388 : ZEND_BEGIN_ARG_INFO_EX(arginfo_printf, 0, 0, 1)
1389 : ZEND_ARG_INFO(0, format)
1390 : ZEND_ARG_INFO(0, arg1)
1391 : ZEND_ARG_INFO(0, ...)
1392 : ZEND_END_ARG_INFO()
1393 :
1394 : ZEND_BEGIN_ARG_INFO(arginfo_vprintf, 0)
1395 : ZEND_ARG_INFO(0, format)
1396 : ZEND_ARG_INFO(0, args) /* ARRAY_INFO(0, args, 1) */
1397 : ZEND_END_ARG_INFO()
1398 :
1399 : ZEND_BEGIN_ARG_INFO_EX(arginfo_fprintf, 0, 0, 2)
1400 : ZEND_ARG_INFO(0, stream)
1401 : ZEND_ARG_INFO(0, format)
1402 : ZEND_ARG_INFO(0, arg1)
1403 : ZEND_ARG_INFO(0, ...)
1404 : ZEND_END_ARG_INFO()
1405 :
1406 : ZEND_BEGIN_ARG_INFO(arginfo_vfprintf, 0)
1407 : ZEND_ARG_INFO(0, stream)
1408 : ZEND_ARG_INFO(0, format)
1409 : ZEND_ARG_INFO(0, args) /* ARRAY_INFO(0, args, 1) */
1410 : ZEND_END_ARG_INFO()
1411 : /* }}} */
1412 : /* {{{ fsock.c */
1413 : ZEND_BEGIN_ARG_INFO_EX(arginfo_fsockopen, 0, 0, 2)
1414 : ZEND_ARG_INFO(0, hostname)
1415 : ZEND_ARG_INFO(0, port)
1416 : ZEND_ARG_INFO(1, errno)
1417 : ZEND_ARG_INFO(1, errstr)
1418 : ZEND_ARG_INFO(0, timeout)
1419 : ZEND_END_ARG_INFO()
1420 :
1421 : ZEND_BEGIN_ARG_INFO_EX(arginfo_pfsockopen, 0, 0, 2)
1422 : ZEND_ARG_INFO(0, hostname)
1423 : ZEND_ARG_INFO(0, port)
1424 : ZEND_ARG_INFO(1, errno)
1425 : ZEND_ARG_INFO(1, errstr)
1426 : ZEND_ARG_INFO(0, timeout)
1427 : ZEND_END_ARG_INFO()
1428 : /* }}} */
1429 : /* {{{ ftok.c */
1430 : #if HAVE_FTOK
1431 : ZEND_BEGIN_ARG_INFO(arginfo_ftok, 0)
1432 : ZEND_ARG_INFO(0, pathname)
1433 : ZEND_ARG_INFO(0, proj)
1434 : ZEND_END_ARG_INFO()
1435 : #endif
1436 : /* }}} */
1437 : /* {{{ head.c */
1438 : ZEND_BEGIN_ARG_INFO_EX(arginfo_header, 0, 0, 1)
1439 : ZEND_ARG_INFO(0, header)
1440 : ZEND_ARG_INFO(0, replace)
1441 : ZEND_ARG_INFO(0, http_response_code)
1442 : ZEND_END_ARG_INFO()
1443 :
1444 : ZEND_BEGIN_ARG_INFO_EX(arginfo_header_remove, 0, 0, 0)
1445 : ZEND_ARG_INFO(0, name)
1446 : ZEND_END_ARG_INFO()
1447 :
1448 : ZEND_BEGIN_ARG_INFO_EX(arginfo_setcookie, 0, 0, 1)
1449 : ZEND_ARG_INFO(0, name)
1450 : ZEND_ARG_INFO(0, value)
1451 : ZEND_ARG_INFO(0, expires)
1452 : ZEND_ARG_INFO(0, path)
1453 : ZEND_ARG_INFO(0, domain)
1454 : ZEND_ARG_INFO(0, secure)
1455 : ZEND_END_ARG_INFO()
1456 :
1457 : ZEND_BEGIN_ARG_INFO_EX(arginfo_setrawcookie, 0, 0, 1)
1458 : ZEND_ARG_INFO(0, name)
1459 : ZEND_ARG_INFO(0, value)
1460 : ZEND_ARG_INFO(0, expires)
1461 : ZEND_ARG_INFO(0, path)
1462 : ZEND_ARG_INFO(0, domain)
1463 : ZEND_ARG_INFO(0, secure)
1464 : ZEND_END_ARG_INFO()
1465 :
1466 : ZEND_BEGIN_ARG_INFO_EX(arginfo_headers_sent, 0, 0, 0)
1467 : ZEND_ARG_INFO(1, file)
1468 : ZEND_ARG_INFO(1, line)
1469 : ZEND_END_ARG_INFO()
1470 :
1471 : ZEND_BEGIN_ARG_INFO(arginfo_headers_list, 0)
1472 : ZEND_END_ARG_INFO()
1473 : /* }}} */
1474 : /* {{{ html.c */
1475 : ZEND_BEGIN_ARG_INFO_EX(arginfo_htmlspecialchars, 0, 0, 1)
1476 : ZEND_ARG_INFO(0, string)
1477 : ZEND_ARG_INFO(0, quote_style)
1478 : ZEND_ARG_INFO(0, charset)
1479 : ZEND_ARG_INFO(0, double_encode)
1480 : ZEND_END_ARG_INFO()
1481 :
1482 : ZEND_BEGIN_ARG_INFO_EX(arginfo_htmlspecialchars_decode, 0, 0, 1)
1483 : ZEND_ARG_INFO(0, string)
1484 : ZEND_ARG_INFO(0, quote_style)
1485 : ZEND_END_ARG_INFO()
1486 :
1487 : ZEND_BEGIN_ARG_INFO_EX(arginfo_html_entity_decode, 0, 0, 1)
1488 : ZEND_ARG_INFO(0, string)
1489 : ZEND_ARG_INFO(0, quote_style)
1490 : ZEND_ARG_INFO(0, charset)
1491 : ZEND_END_ARG_INFO()
1492 :
1493 : ZEND_BEGIN_ARG_INFO_EX(arginfo_htmlentities, 0, 0, 1)
1494 : ZEND_ARG_INFO(0, string)
1495 : ZEND_ARG_INFO(0, quote_style)
1496 : ZEND_ARG_INFO(0, charset)
1497 : ZEND_ARG_INFO(0, double_encode)
1498 : ZEND_END_ARG_INFO()
1499 :
1500 : ZEND_BEGIN_ARG_INFO_EX(arginfo_get_html_translation_table, 0, 0, 0)
1501 : ZEND_ARG_INFO(0, table)
1502 : ZEND_ARG_INFO(0, quote_style)
1503 : ZEND_END_ARG_INFO()
1504 :
1505 : /* }}} */
1506 : /* {{{ http.c */
1507 : ZEND_BEGIN_ARG_INFO_EX(arginfo_http_build_query, 0, 0, 1)
1508 : ZEND_ARG_INFO(0, formdata)
1509 : ZEND_ARG_INFO(0, prefix)
1510 : ZEND_ARG_INFO(0, arg_separator)
1511 : ZEND_END_ARG_INFO()
1512 : /* }}} */
1513 : /* {{{ image.c */
1514 : ZEND_BEGIN_ARG_INFO(arginfo_image_type_to_mime_type, 0)
1515 : ZEND_ARG_INFO(0, imagetype)
1516 : ZEND_END_ARG_INFO()
1517 :
1518 : ZEND_BEGIN_ARG_INFO_EX(arginfo_image_type_to_extension, 0, 0, 1)
1519 : ZEND_ARG_INFO(0, imagetype)
1520 : ZEND_ARG_INFO(0, include_dot)
1521 : ZEND_END_ARG_INFO()
1522 :
1523 : ZEND_BEGIN_ARG_INFO_EX(arginfo_getimagesize, 0, 0, 1)
1524 : ZEND_ARG_INFO(0, imagefile)
1525 : ZEND_ARG_INFO(1, info) /* ARRAY_INFO(1, info, 1) */
1526 : ZEND_END_ARG_INFO()
1527 : /* }}} */
1528 : /* {{{ info.c */
1529 : ZEND_BEGIN_ARG_INFO_EX(arginfo_phpinfo, 0, 0, 0)
1530 : ZEND_ARG_INFO(0, what)
1531 : ZEND_END_ARG_INFO()
1532 :
1533 : ZEND_BEGIN_ARG_INFO_EX(arginfo_phpversion, 0, 0, 0)
1534 : ZEND_ARG_INFO(0, extension)
1535 : ZEND_END_ARG_INFO()
1536 :
1537 : ZEND_BEGIN_ARG_INFO_EX(arginfo_phpcredits, 0, 0, 0)
1538 : ZEND_ARG_INFO(0, flag)
1539 : ZEND_END_ARG_INFO()
1540 :
1541 : ZEND_BEGIN_ARG_INFO(arginfo_php_logo_guid, 0)
1542 : ZEND_END_ARG_INFO()
1543 :
1544 : ZEND_BEGIN_ARG_INFO(arginfo_php_real_logo_guid, 0)
1545 : ZEND_END_ARG_INFO()
1546 :
1547 : ZEND_BEGIN_ARG_INFO(arginfo_php_egg_logo_guid, 0)
1548 : ZEND_END_ARG_INFO()
1549 :
1550 : ZEND_BEGIN_ARG_INFO(arginfo_zend_logo_guid, 0)
1551 : ZEND_END_ARG_INFO()
1552 :
1553 : ZEND_BEGIN_ARG_INFO(arginfo_php_sapi_name, 0)
1554 : ZEND_END_ARG_INFO()
1555 :
1556 : ZEND_BEGIN_ARG_INFO(arginfo_php_uname, 0)
1557 : ZEND_END_ARG_INFO()
1558 :
1559 : ZEND_BEGIN_ARG_INFO(arginfo_php_ini_scanned_files, 0)
1560 : ZEND_END_ARG_INFO()
1561 :
1562 : ZEND_BEGIN_ARG_INFO(arginfo_php_ini_loaded_file, 0)
1563 : ZEND_END_ARG_INFO()
1564 : /* }}} */
1565 : /* {{{ iptc.c */
1566 : ZEND_BEGIN_ARG_INFO_EX(arginfo_iptcembed, 0, 0, 2)
1567 : ZEND_ARG_INFO(0, iptcdata)
1568 : ZEND_ARG_INFO(0, jpeg_file_name)
1569 : ZEND_ARG_INFO(0, spool)
1570 : ZEND_END_ARG_INFO()
1571 :
1572 : ZEND_BEGIN_ARG_INFO(arginfo_iptcparse, 0)
1573 : ZEND_ARG_INFO(0, iptcdata)
1574 : ZEND_END_ARG_INFO()
1575 : /* }}} */
1576 : /* {{{ lcg.c */
1577 : ZEND_BEGIN_ARG_INFO(arginfo_lcg_value, 0)
1578 : ZEND_END_ARG_INFO()
1579 : /* }}} */
1580 : /* {{{ levenshtein.c */
1581 : ZEND_BEGIN_ARG_INFO(arginfo_levenshtein, 0)
1582 : ZEND_ARG_INFO(0, str1)
1583 : ZEND_ARG_INFO(0, str2)
1584 : ZEND_ARG_INFO(0, cost_ins)
1585 : ZEND_ARG_INFO(0, cost_rep)
1586 : ZEND_ARG_INFO(0, cost_del)
1587 : ZEND_END_ARG_INFO()
1588 : /* }}} */
1589 : /* {{{ link.c */
1590 : #if defined(HAVE_SYMLINK) || defined(PHP_WIN32)
1591 : ZEND_BEGIN_ARG_INFO(arginfo_readlink, 0)
1592 : ZEND_ARG_INFO(0, filename)
1593 : ZEND_END_ARG_INFO()
1594 :
1595 : ZEND_BEGIN_ARG_INFO(arginfo_linkinfo, 0)
1596 : ZEND_ARG_INFO(0, filename)
1597 : ZEND_END_ARG_INFO()
1598 :
1599 : ZEND_BEGIN_ARG_INFO(arginfo_symlink, 0)
1600 : ZEND_ARG_INFO(0, target)
1601 : ZEND_ARG_INFO(0, link)
1602 : ZEND_END_ARG_INFO()
1603 :
1604 : ZEND_BEGIN_ARG_INFO(arginfo_link, 0)
1605 : ZEND_ARG_INFO(0, target)
1606 : ZEND_ARG_INFO(0, link)
1607 : ZEND_END_ARG_INFO()
1608 : #endif
1609 : /* }}} */
1610 : /* {{{ mail.c */
1611 : ZEND_BEGIN_ARG_INFO(arginfo_ezmlm_hash, 0)
1612 : ZEND_ARG_INFO(0, addr)
1613 : ZEND_END_ARG_INFO()
1614 :
1615 : ZEND_BEGIN_ARG_INFO_EX(arginfo_mail, 0, 0, 3)
1616 : ZEND_ARG_INFO(0, to)
1617 : ZEND_ARG_INFO(0, subject)
1618 : ZEND_ARG_INFO(0, message)
1619 : ZEND_ARG_INFO(0, additional_headers)
1620 : ZEND_ARG_INFO(0, additional_parameters)
1621 : ZEND_END_ARG_INFO()
1622 : /* }}} */
1623 : /* {{{ math.c */
1624 : ZEND_BEGIN_ARG_INFO(arginfo_abs, 0)
1625 : ZEND_ARG_INFO(0, number)
1626 : ZEND_END_ARG_INFO()
1627 :
1628 : ZEND_BEGIN_ARG_INFO(arginfo_ceil, 0)
1629 : ZEND_ARG_INFO(0, number)
1630 : ZEND_END_ARG_INFO()
1631 :
1632 : ZEND_BEGIN_ARG_INFO(arginfo_floor, 0)
1633 : ZEND_ARG_INFO(0, number)
1634 : ZEND_END_ARG_INFO()
1635 :
1636 : ZEND_BEGIN_ARG_INFO_EX(arginfo_round, 0, 0, 1)
1637 : ZEND_ARG_INFO(0, number)
1638 : ZEND_ARG_INFO(0, precision)
1639 : ZEND_ARG_INFO(0, mode)
1640 : ZEND_END_ARG_INFO()
1641 :
1642 : ZEND_BEGIN_ARG_INFO(arginfo_sin, 0)
1643 : ZEND_ARG_INFO(0, number)
1644 : ZEND_END_ARG_INFO()
1645 :
1646 : ZEND_BEGIN_ARG_INFO(arginfo_cos, 0)
1647 : ZEND_ARG_INFO(0, number)
1648 : ZEND_END_ARG_INFO()
1649 :
1650 : ZEND_BEGIN_ARG_INFO(arginfo_tan, 0)
1651 : ZEND_ARG_INFO(0, number)
1652 : ZEND_END_ARG_INFO()
1653 :
1654 : ZEND_BEGIN_ARG_INFO(arginfo_asin, 0)
1655 : ZEND_ARG_INFO(0, number)
1656 : ZEND_END_ARG_INFO()
1657 :
1658 : ZEND_BEGIN_ARG_INFO(arginfo_acos, 0)
1659 : ZEND_ARG_INFO(0, number)
1660 : ZEND_END_ARG_INFO()
1661 :
1662 : ZEND_BEGIN_ARG_INFO(arginfo_atan, 0)
1663 : ZEND_ARG_INFO(0, number)
1664 : ZEND_END_ARG_INFO()
1665 :
1666 : ZEND_BEGIN_ARG_INFO(arginfo_atan2, 0)
1667 : ZEND_ARG_INFO(0, y)
1668 : ZEND_ARG_INFO(0, x)
1669 : ZEND_END_ARG_INFO()
1670 :
1671 : ZEND_BEGIN_ARG_INFO(arginfo_sinh, 0)
1672 : ZEND_ARG_INFO(0, number)
1673 : ZEND_END_ARG_INFO()
1674 :
1675 : ZEND_BEGIN_ARG_INFO(arginfo_cosh, 0)
1676 : ZEND_ARG_INFO(0, number)
1677 : ZEND_END_ARG_INFO()
1678 :
1679 : ZEND_BEGIN_ARG_INFO(arginfo_tanh, 0)
1680 : ZEND_ARG_INFO(0, number)
1681 : ZEND_END_ARG_INFO()
1682 :
1683 : ZEND_BEGIN_ARG_INFO(arginfo_asinh, 0)
1684 : ZEND_ARG_INFO(0, number)
1685 : ZEND_END_ARG_INFO()
1686 :
1687 : ZEND_BEGIN_ARG_INFO(arginfo_acosh, 0)
1688 : ZEND_ARG_INFO(0, number)
1689 : ZEND_END_ARG_INFO()
1690 :
1691 : ZEND_BEGIN_ARG_INFO(arginfo_atanh, 0)
1692 : ZEND_ARG_INFO(0, number)
1693 : ZEND_END_ARG_INFO()
1694 :
1695 : ZEND_BEGIN_ARG_INFO(arginfo_pi, 0)
1696 : ZEND_END_ARG_INFO()
1697 :
1698 : ZEND_BEGIN_ARG_INFO(arginfo_is_finite, 0)
1699 : ZEND_ARG_INFO(0, val)
1700 : ZEND_END_ARG_INFO()
1701 :
1702 : ZEND_BEGIN_ARG_INFO(arginfo_is_infinite, 0)
1703 : ZEND_ARG_INFO(0, val)
1704 : ZEND_END_ARG_INFO()
1705 :
1706 : ZEND_BEGIN_ARG_INFO(arginfo_is_nan, 0)
1707 : ZEND_ARG_INFO(0, val)
1708 : ZEND_END_ARG_INFO()
1709 :
1710 : ZEND_BEGIN_ARG_INFO(arginfo_pow, 0)
1711 : ZEND_ARG_INFO(0, base)
1712 : ZEND_ARG_INFO(0, exponent)
1713 : ZEND_END_ARG_INFO()
1714 :
1715 : ZEND_BEGIN_ARG_INFO(arginfo_exp, 0)
1716 : ZEND_ARG_INFO(0, number)
1717 : ZEND_END_ARG_INFO()
1718 :
1719 : ZEND_BEGIN_ARG_INFO(arginfo_expm1, 0)
1720 : ZEND_ARG_INFO(0, number)
1721 : ZEND_END_ARG_INFO()
1722 :
1723 : ZEND_BEGIN_ARG_INFO(arginfo_log1p, 0)
1724 : ZEND_ARG_INFO(0, number)
1725 : ZEND_END_ARG_INFO()
1726 :
1727 : ZEND_BEGIN_ARG_INFO_EX(arginfo_log, 0, 0, 1)
1728 : ZEND_ARG_INFO(0, number)
1729 : ZEND_ARG_INFO(0, base)
1730 : ZEND_END_ARG_INFO()
1731 :
1732 : ZEND_BEGIN_ARG_INFO(arginfo_log10, 0)
1733 : ZEND_ARG_INFO(0, number)
1734 : ZEND_END_ARG_INFO()
1735 :
1736 : ZEND_BEGIN_ARG_INFO(arginfo_sqrt, 0)
1737 : ZEND_ARG_INFO(0, number)
1738 : ZEND_END_ARG_INFO()
1739 :
1740 : ZEND_BEGIN_ARG_INFO(arginfo_hypot, 0)
1741 : ZEND_ARG_INFO(0, num1)
1742 : ZEND_ARG_INFO(0, num2)
1743 : ZEND_END_ARG_INFO()
1744 :
1745 : ZEND_BEGIN_ARG_INFO(arginfo_deg2rad, 0)
1746 : ZEND_ARG_INFO(0, number)
1747 : ZEND_END_ARG_INFO()
1748 :
1749 : ZEND_BEGIN_ARG_INFO(arginfo_rad2deg, 0)
1750 : ZEND_ARG_INFO(0, number)
1751 : ZEND_END_ARG_INFO()
1752 :
1753 : ZEND_BEGIN_ARG_INFO(arginfo_bindec, 0)
1754 : ZEND_ARG_INFO(0, binary_number)
1755 : ZEND_END_ARG_INFO()
1756 :
1757 : ZEND_BEGIN_ARG_INFO(arginfo_hexdec, 0)
1758 : ZEND_ARG_INFO(0, hexadecimal_number)
1759 : ZEND_END_ARG_INFO()
1760 :
1761 : ZEND_BEGIN_ARG_INFO(arginfo_octdec, 0)
1762 : ZEND_ARG_INFO(0, octal_number)
1763 : ZEND_END_ARG_INFO()
1764 :
1765 : ZEND_BEGIN_ARG_INFO(arginfo_decbin, 0)
1766 : ZEND_ARG_INFO(0, decimal_number)
1767 : ZEND_END_ARG_INFO()
1768 :
1769 : ZEND_BEGIN_ARG_INFO(arginfo_decoct, 0)
1770 : ZEND_ARG_INFO(0, decimal_number)
1771 : ZEND_END_ARG_INFO()
1772 :
1773 : ZEND_BEGIN_ARG_INFO(arginfo_dechex, 0)
1774 : ZEND_ARG_INFO(0, decimal_number)
1775 : ZEND_END_ARG_INFO()
1776 :
1777 : ZEND_BEGIN_ARG_INFO(arginfo_base_convert, 0)
1778 : ZEND_ARG_INFO(0, number)
1779 : ZEND_ARG_INFO(0, frombase)
1780 : ZEND_ARG_INFO(0, tobase)
1781 : ZEND_END_ARG_INFO()
1782 :
1783 : ZEND_BEGIN_ARG_INFO_EX(arginfo_number_format, 0, 0, 1)
1784 : ZEND_ARG_INFO(0, number)
1785 : ZEND_ARG_INFO(0, num_decimal_places)
1786 : ZEND_ARG_INFO(0, dec_seperator)
1787 : ZEND_ARG_INFO(0, thousands_seperator)
1788 : ZEND_END_ARG_INFO()
1789 :
1790 : ZEND_BEGIN_ARG_INFO(arginfo_fmod, 0)
1791 : ZEND_ARG_INFO(0, x)
1792 : ZEND_ARG_INFO(0, y)
1793 : ZEND_END_ARG_INFO()
1794 : /* }}} */
1795 : /* {{{ md5.c */
1796 : ZEND_BEGIN_ARG_INFO_EX(arginfo_md5, 0, 0, 1)
1797 : ZEND_ARG_INFO(0, str)
1798 : ZEND_ARG_INFO(0, raw_output)
1799 : ZEND_END_ARG_INFO()
1800 :
1801 : ZEND_BEGIN_ARG_INFO_EX(arginfo_md5_file, 0, 0, 1)
1802 : ZEND_ARG_INFO(0, filename)
1803 : ZEND_ARG_INFO(0, raw_output)
1804 : ZEND_END_ARG_INFO()
1805 : /* }}} */
1806 : /* {{{ metaphone.c */
1807 : ZEND_BEGIN_ARG_INFO_EX(arginfo_metaphone, 0, 0, 1)
1808 : ZEND_ARG_INFO(0, text)
1809 : ZEND_ARG_INFO(0, phones)
1810 : ZEND_END_ARG_INFO()
1811 : /* }}} */
1812 : /* {{{ microtime.c */
1813 : #ifdef HAVE_GETTIMEOFDAY
1814 : ZEND_BEGIN_ARG_INFO_EX(arginfo_microtime, 0, 0, 0)
1815 : ZEND_ARG_INFO(0, get_as_float)
1816 : ZEND_END_ARG_INFO()
1817 :
1818 : ZEND_BEGIN_ARG_INFO_EX(arginfo_gettimeofday, 0, 0, 0)
1819 : ZEND_ARG_INFO(0, get_as_float)
1820 : ZEND_END_ARG_INFO()
1821 : #endif
1822 :
1823 : #ifdef HAVE_GETRUSAGE
1824 : ZEND_BEGIN_ARG_INFO_EX(arginfo_getrusage, 0, 0, 0)
1825 : ZEND_ARG_INFO(0, who)
1826 : ZEND_END_ARG_INFO()
1827 : #endif
1828 : /* }}} */
1829 : /* {{{ pack.c */
1830 : ZEND_BEGIN_ARG_INFO_EX(arginfo_pack, 0, 0, 2)
1831 : ZEND_ARG_INFO(0, format)
1832 : ZEND_ARG_INFO(0, arg1)
1833 : ZEND_ARG_INFO(0, ...)
1834 : ZEND_END_ARG_INFO()
1835 :
1836 : ZEND_BEGIN_ARG_INFO(arginfo_unpack, 0)
1837 : ZEND_ARG_INFO(0, format)
1838 : ZEND_ARG_INFO(0, input)
1839 : ZEND_END_ARG_INFO()
1840 : /* }}} */
1841 : /* {{{ pageinfo.c */
1842 : ZEND_BEGIN_ARG_INFO(arginfo_getmyuid, 0)
1843 : ZEND_END_ARG_INFO()
1844 :
1845 : ZEND_BEGIN_ARG_INFO(arginfo_getmygid, 0)
1846 : ZEND_END_ARG_INFO()
1847 :
1848 : ZEND_BEGIN_ARG_INFO(arginfo_getmypid, 0)
1849 : ZEND_END_ARG_INFO()
1850 :
1851 : ZEND_BEGIN_ARG_INFO(arginfo_getmyinode, 0)
1852 : ZEND_END_ARG_INFO()
1853 :
1854 : ZEND_BEGIN_ARG_INFO(arginfo_getlastmod, 0)
1855 : ZEND_END_ARG_INFO()
1856 : /* }}} */
1857 : /* {{{ proc_open.c */
1858 : #ifdef PHP_CAN_SUPPORT_PROC_OPEN
1859 : ZEND_BEGIN_ARG_INFO_EX(arginfo_proc_terminate, 0, 0, 1)
1860 : ZEND_ARG_INFO(0, process)
1861 : ZEND_ARG_INFO(0, signal)
1862 : ZEND_END_ARG_INFO()
1863 :
1864 : ZEND_BEGIN_ARG_INFO(arginfo_proc_close, 0)
1865 : ZEND_ARG_INFO(0, process)
1866 : ZEND_END_ARG_INFO()
1867 :
1868 : ZEND_BEGIN_ARG_INFO(arginfo_proc_get_status, 0)
1869 : ZEND_ARG_INFO(0, process)
1870 : ZEND_END_ARG_INFO()
1871 :
1872 : ZEND_BEGIN_ARG_INFO_EX(arginfo_proc_open, 0, 0, 3)
1873 : ZEND_ARG_INFO(0, command)
1874 : ZEND_ARG_INFO(0, descriptorspec) /* ARRAY_INFO(0, descriptorspec, 1) */
1875 : ZEND_ARG_INFO(1, pipes) /* ARRAY_INFO(1, pipes, 1) */
1876 : ZEND_ARG_INFO(0, cwd)
1877 : ZEND_ARG_INFO(0, env) /* ARRAY_INFO(0, env, 1) */
1878 : ZEND_ARG_INFO(0, other_options) /* ARRAY_INFO(0, other_options, 1) */
1879 : ZEND_END_ARG_INFO()
1880 : #endif
1881 : /* }}} */
1882 : /* {{{ quot_print.c */
1883 : ZEND_BEGIN_ARG_INFO(arginfo_quoted_printable_decode, 0)
1884 : ZEND_ARG_INFO(0, str)
1885 : ZEND_END_ARG_INFO()
1886 : /* }}} */
1887 : /* {{{ quot_print.c */
1888 : ZEND_BEGIN_ARG_INFO(arginfo_quoted_printable_encode, 0)
1889 : ZEND_ARG_INFO(0, str)
1890 : ZEND_END_ARG_INFO()
1891 : /* }}} */
1892 : /* {{{ rand.c */
1893 : ZEND_BEGIN_ARG_INFO_EX(arginfo_srand, 0, 0, 0)
1894 : ZEND_ARG_INFO(0, seed)
1895 : ZEND_END_ARG_INFO()
1896 :
1897 : ZEND_BEGIN_ARG_INFO_EX(arginfo_mt_srand, 0, 0, 0)
1898 : ZEND_ARG_INFO(0, seed)
1899 : ZEND_END_ARG_INFO()
1900 :
1901 : ZEND_BEGIN_ARG_INFO_EX(arginfo_rand, 0, 0, 0)
1902 : ZEND_ARG_INFO(0, min)
1903 : ZEND_ARG_INFO(0, max)
1904 : ZEND_END_ARG_INFO()
1905 :
1906 : ZEND_BEGIN_ARG_INFO_EX(arginfo_mt_rand, 0, 0, 0)
1907 : ZEND_ARG_INFO(0, min)
1908 : ZEND_ARG_INFO(0, max)
1909 : ZEND_END_ARG_INFO()
1910 :
1911 : ZEND_BEGIN_ARG_INFO(arginfo_getrandmax, 0)
1912 : ZEND_END_ARG_INFO()
1913 :
1914 : ZEND_BEGIN_ARG_INFO(arginfo_mt_getrandmax, 0)
1915 : ZEND_END_ARG_INFO()
1916 : /* }}} */
1917 : /* {{{ sha1.c */
1918 : ZEND_BEGIN_ARG_INFO_EX(arginfo_sha1, 0, 0, 1)
1919 : ZEND_ARG_INFO(0, str)
1920 : ZEND_ARG_INFO(0, raw_output)
1921 : ZEND_END_ARG_INFO()
1922 :
1923 : ZEND_BEGIN_ARG_INFO_EX(arginfo_sha1_file, 0, 0, 1)
1924 : ZEND_ARG_INFO(0, filename)
1925 : ZEND_ARG_INFO(0, raw_output)
1926 : ZEND_END_ARG_INFO()
1927 : /* }}} */
1928 : /* {{{ soundex.c */
1929 : ZEND_BEGIN_ARG_INFO(arginfo_soundex, 0)
1930 : ZEND_ARG_INFO(0, str)
1931 : ZEND_END_ARG_INFO()
1932 : /* }}} */
1933 : /* {{{ streamsfuncs.c */
1934 : #if HAVE_SOCKETPAIR
1935 : ZEND_BEGIN_ARG_INFO(arginfo_stream_socket_pair, 0)
1936 : ZEND_ARG_INFO(0, domain)
1937 : ZEND_ARG_INFO(0, type)
1938 : ZEND_ARG_INFO(0, protocol)
1939 : ZEND_END_ARG_INFO()
1940 : #endif
1941 :
1942 : ZEND_BEGIN_ARG_INFO_EX(arginfo_stream_socket_client, 0, 0, 1)
1943 : ZEND_ARG_INFO(0, remoteaddress)
1944 : ZEND_ARG_INFO(1, errcode)
1945 : ZEND_ARG_INFO(1, errstring)
1946 : ZEND_ARG_INFO(0, timeout)
1947 : ZEND_ARG_INFO(0, flags)
1948 : ZEND_ARG_INFO(0, context)
1949 : ZEND_END_ARG_INFO()
1950 :
1951 : ZEND_BEGIN_ARG_INFO_EX(arginfo_stream_socket_server, 0, 0, 1)
1952 : ZEND_ARG_INFO(0, localaddress)
1953 : ZEND_ARG_INFO(1, errcode)
1954 : ZEND_ARG_INFO(1, errstring)
1955 : ZEND_ARG_INFO(0, flags)
1956 : ZEND_ARG_INFO(0, context)
1957 : ZEND_END_ARG_INFO()
1958 :
1959 : ZEND_BEGIN_ARG_INFO_EX(arginfo_stream_socket_accept, 0, 0, 1)
1960 : ZEND_ARG_INFO(0, serverstream)
1961 : ZEND_ARG_INFO(0, timeout)
1962 : ZEND_ARG_INFO(1, peername)
1963 : ZEND_END_ARG_INFO()
1964 :
1965 : ZEND_BEGIN_ARG_INFO(arginfo_stream_socket_get_name, 0)
1966 : ZEND_ARG_INFO(0, stream)
1967 : ZEND_ARG_INFO(0, want_peer)
1968 : ZEND_END_ARG_INFO()
1969 :
1970 : ZEND_BEGIN_ARG_INFO_EX(arginfo_stream_socket_sendto, 0, 0, 2)
1971 : ZEND_ARG_INFO(0, stream)
1972 : ZEND_ARG_INFO(0, data)
1973 : ZEND_ARG_INFO(0, flags)
1974 : ZEND_ARG_INFO(0, target_addr)
1975 : ZEND_END_ARG_INFO()
1976 :
1977 : ZEND_BEGIN_ARG_INFO_EX(arginfo_stream_socket_recvfrom, 0, 0, 2)
1978 : ZEND_ARG_INFO(0, stream)
1979 : ZEND_ARG_INFO(0, amount)
1980 : ZEND_ARG_INFO(0, flags)
1981 : ZEND_ARG_INFO(1, remote_addr)
1982 : ZEND_END_ARG_INFO()
1983 :
1984 : ZEND_BEGIN_ARG_INFO_EX(arginfo_stream_get_contents, 0, 0, 1)
1985 : ZEND_ARG_INFO(0, source)
1986 : ZEND_ARG_INFO(0, maxlen)
1987 : ZEND_ARG_INFO(0, offset)
1988 : ZEND_END_ARG_INFO()
1989 :
1990 : ZEND_BEGIN_ARG_INFO_EX(arginfo_stream_copy_to_stream, 0, 0, 2)
1991 : ZEND_ARG_INFO(0, source)
1992 : ZEND_ARG_INFO(0, dest)
1993 : ZEND_ARG_INFO(0, maxlen)
1994 : ZEND_ARG_INFO(0, pos)
1995 : ZEND_END_ARG_INFO()
1996 :
1997 : ZEND_BEGIN_ARG_INFO(arginfo_stream_get_meta_data, 0)
1998 : ZEND_ARG_INFO(0, fp)
1999 : ZEND_END_ARG_INFO()
2000 :
2001 : ZEND_BEGIN_ARG_INFO(arginfo_stream_get_transports, 0)
2002 : ZEND_END_ARG_INFO()
2003 :
2004 : ZEND_BEGIN_ARG_INFO(arginfo_stream_get_wrappers, 0)
2005 : ZEND_END_ARG_INFO()
2006 :
2007 : ZEND_BEGIN_ARG_INFO(arginfo_stream_is_local, 0)
2008 : ZEND_ARG_INFO(0, stream)
2009 : ZEND_END_ARG_INFO()
2010 :
2011 : ZEND_BEGIN_ARG_INFO_EX(arginfo_stream_supports_lock, 0, 0, 1)
2012 : ZEND_ARG_INFO(0, stream)
2013 : ZEND_END_ARG_INFO()
2014 :
2015 : ZEND_BEGIN_ARG_INFO_EX(arginfo_stream_select, 0, 0, 4)
2016 : ZEND_ARG_INFO(1, read_streams) /* ARRAY_INFO(1, read_streams, 1) */
2017 : ZEND_ARG_INFO(1, write_streams) /* ARRAY_INFO(1, write_streams, 1) */
2018 : ZEND_ARG_INFO(1, except_streams) /* ARRAY_INFO(1, except_streams, 1) */
2019 : ZEND_ARG_INFO(0, tv_sec)
2020 : ZEND_ARG_INFO(0, tv_usec)
2021 : ZEND_END_ARG_INFO()
2022 :
2023 : ZEND_BEGIN_ARG_INFO(arginfo_stream_context_get_options, 0)
2024 : ZEND_ARG_INFO(0, stream_or_context)
2025 : ZEND_END_ARG_INFO()
2026 :
2027 : ZEND_BEGIN_ARG_INFO(arginfo_stream_context_set_option, 0)
2028 : ZEND_ARG_INFO(0, stream_or_context)
2029 : ZEND_ARG_INFO(0, wrappername)
2030 : ZEND_ARG_INFO(0, optionname)
2031 : ZEND_ARG_INFO(0, value)
2032 : ZEND_END_ARG_INFO()
2033 :
2034 : ZEND_BEGIN_ARG_INFO(arginfo_stream_context_set_params, 0)
2035 : ZEND_ARG_INFO(0, stream_or_context)
2036 : ZEND_ARG_INFO(0, options) /* ARRAY_INFO(0, options, 1) */
2037 : ZEND_END_ARG_INFO()
2038 :
2039 : ZEND_BEGIN_ARG_INFO_EX(arginfo_stream_context_get_params, 0, ZEND_RETURN_VALUE, 1)
2040 : ZEND_ARG_INFO(0, stream_or_context)
2041 : ZEND_END_ARG_INFO()
2042 :
2043 : ZEND_BEGIN_ARG_INFO_EX(arginfo_stream_context_get_default, 0, 0, 0)
2044 : ZEND_ARG_INFO(0, options) /* ARRAY_INFO(0, options, 1) */
2045 : ZEND_END_ARG_INFO()
2046 :
2047 : ZEND_BEGIN_ARG_INFO(arginfo_stream_context_set_default, 0)
2048 : ZEND_ARG_INFO(0, options)
2049 : ZEND_END_ARG_INFO()
2050 :
2051 : ZEND_BEGIN_ARG_INFO_EX(arginfo_stream_context_create, 0, 0, 0)
2052 : ZEND_ARG_INFO(0, options) /* ARRAY_INFO(0, options, 1) */
2053 : ZEND_ARG_INFO(0, params) /* ARRAY_INFO(0, params, 1) */
2054 : ZEND_END_ARG_INFO()
2055 :
2056 : ZEND_BEGIN_ARG_INFO_EX(arginfo_stream_filter_prepend, 0, 0, 2)
2057 : ZEND_ARG_INFO(0, stream)
2058 : ZEND_ARG_INFO(0, filtername)
2059 : ZEND_ARG_INFO(0, read_write)
2060 : ZEND_ARG_INFO(0, filterparams)
2061 : ZEND_END_ARG_INFO()
2062 :
2063 : ZEND_BEGIN_ARG_INFO_EX(arginfo_stream_filter_append, 0, 0, 2)
2064 : ZEND_ARG_INFO(0, stream)
2065 : ZEND_ARG_INFO(0, filtername)
2066 : ZEND_ARG_INFO(0, read_write)
2067 : ZEND_ARG_INFO(0, filterparams)
2068 : ZEND_END_ARG_INFO()
2069 :
2070 : ZEND_BEGIN_ARG_INFO(arginfo_stream_filter_remove, 0)
2071 : ZEND_ARG_INFO(0, stream_filter)
2072 : ZEND_END_ARG_INFO()
2073 :
2074 : ZEND_BEGIN_ARG_INFO_EX(arginfo_stream_get_line, 0, 0, 2)
2075 : ZEND_ARG_INFO(0, stream)
2076 : ZEND_ARG_INFO(0, maxlen)
2077 : ZEND_ARG_INFO(0, ending)
2078 : ZEND_END_ARG_INFO()
2079 :
2080 : ZEND_BEGIN_ARG_INFO(arginfo_stream_set_blocking, 0)
2081 : ZEND_ARG_INFO(0, socket)
2082 : ZEND_ARG_INFO(0, mode)
2083 : ZEND_END_ARG_INFO()
2084 :
2085 : #if HAVE_SYS_TIME_H || defined(PHP_WIN32)
2086 : ZEND_BEGIN_ARG_INFO(arginfo_stream_set_timeout, 0)
2087 : ZEND_ARG_INFO(0, stream)
2088 : ZEND_ARG_INFO(0, seconds)
2089 : ZEND_ARG_INFO(0, microseconds)
2090 : ZEND_END_ARG_INFO()
2091 : #endif
2092 :
2093 : ZEND_BEGIN_ARG_INFO(arginfo_stream_set_write_buffer, 0)
2094 : ZEND_ARG_INFO(0, fp)
2095 : ZEND_ARG_INFO(0, buffer)
2096 : ZEND_END_ARG_INFO()
2097 :
2098 : ZEND_BEGIN_ARG_INFO_EX(arginfo_stream_socket_enable_crypto, 0, 0, 2)
2099 : ZEND_ARG_INFO(0, stream)
2100 : ZEND_ARG_INFO(0, enable)
2101 : ZEND_ARG_INFO(0, cryptokind)
2102 : ZEND_ARG_INFO(0, sessionstream)
2103 : ZEND_END_ARG_INFO()
2104 :
2105 : #ifdef HAVE_SHUTDOWN
2106 : ZEND_BEGIN_ARG_INFO(arginfo_stream_socket_shutdown, 0)
2107 : ZEND_ARG_INFO(0, stream)
2108 : ZEND_ARG_INFO(0, how)
2109 : ZEND_END_ARG_INFO()
2110 : #endif
2111 : /* }}} */
2112 : /* {{{ string.c */
2113 : ZEND_BEGIN_ARG_INFO(arginfo_bin2hex, 0)
2114 : ZEND_ARG_INFO(0, data)
2115 : ZEND_END_ARG_INFO()
2116 :
2117 : ZEND_BEGIN_ARG_INFO_EX(arginfo_strspn, 0, 0, 2)
2118 : ZEND_ARG_INFO(0, str)
2119 : ZEND_ARG_INFO(0, mask)
2120 : ZEND_ARG_INFO(0, start)
2121 : ZEND_ARG_INFO(0, len)
2122 : ZEND_END_ARG_INFO()
2123 :
2124 : ZEND_BEGIN_ARG_INFO_EX(arginfo_strcspn, 0, 0, 2)
2125 : ZEND_ARG_INFO(0, str)
2126 : ZEND_ARG_INFO(0, mask)
2127 : ZEND_ARG_INFO(0, start)
2128 : ZEND_ARG_INFO(0, len)
2129 : ZEND_END_ARG_INFO()
2130 :
2131 : #if HAVE_NL_LANGINFO
2132 : ZEND_BEGIN_ARG_INFO(arginfo_nl_langinfo, 0)
2133 : ZEND_ARG_INFO(0, item)
2134 : ZEND_END_ARG_INFO()
2135 : #endif
2136 :
2137 : #ifdef HAVE_STRCOLL
2138 : ZEND_BEGIN_ARG_INFO(arginfo_strcoll, 0)
2139 : ZEND_ARG_INFO(0, str1)
2140 : ZEND_ARG_INFO(0, str2)
2141 : ZEND_END_ARG_INFO()
2142 : #endif
2143 :
2144 : ZEND_BEGIN_ARG_INFO_EX(arginfo_trim, 0, 0, 1)
2145 : ZEND_ARG_INFO(0, str)
2146 : ZEND_ARG_INFO(0, character_mask)
2147 : ZEND_END_ARG_INFO()
2148 :
2149 : ZEND_BEGIN_ARG_INFO_EX(arginfo_rtrim, 0, 0, 1)
2150 : ZEND_ARG_INFO(0, str)
2151 : ZEND_ARG_INFO(0, character_mask)
2152 : ZEND_END_ARG_INFO()
2153 :
2154 : ZEND_BEGIN_ARG_INFO_EX(arginfo_ltrim, 0, 0, 1)
2155 : ZEND_ARG_INFO(0, str)
2156 : ZEND_ARG_INFO(0, character_mask)
2157 : ZEND_END_ARG_INFO()
2158 :
2159 : ZEND_BEGIN_ARG_INFO_EX(arginfo_wordwrap, 0, 0, 1)
2160 : ZEND_ARG_INFO(0, str)
2161 : ZEND_ARG_INFO(0, width)
2162 : ZEND_ARG_INFO(0, break)
2163 : ZEND_ARG_INFO(0, cut)
2164 : ZEND_END_ARG_INFO()
2165 :
2166 : ZEND_BEGIN_ARG_INFO_EX(arginfo_explode, 0, 0, 2)
2167 : ZEND_ARG_INFO(0, separator)
2168 : ZEND_ARG_INFO(0, str)
2169 : ZEND_ARG_INFO(0, limit)
2170 : ZEND_END_ARG_INFO()
2171 :
2172 : ZEND_BEGIN_ARG_INFO(arginfo_implode, 0)
2173 : ZEND_ARG_INFO(0, glue)
2174 : ZEND_ARG_INFO(0, pieces)
2175 : ZEND_END_ARG_INFO()
2176 :
2177 : ZEND_BEGIN_ARG_INFO(arginfo_strtok, 0)
2178 : ZEND_ARG_INFO(0, str)
2179 : ZEND_ARG_INFO(0, token)
2180 : ZEND_END_ARG_INFO()
2181 :
2182 : ZEND_BEGIN_ARG_INFO(arginfo_strtoupper, 0)
2183 : ZEND_ARG_INFO(0, str)
2184 : ZEND_END_ARG_INFO()
2185 :
2186 : ZEND_BEGIN_ARG_INFO(arginfo_strtolower, 0)
2187 : ZEND_ARG_INFO(0, str)
2188 : ZEND_END_ARG_INFO()
2189 :
2190 : ZEND_BEGIN_ARG_INFO_EX(arginfo_basename, 0, 0, 1)
2191 : ZEND_ARG_INFO(0, path)
2192 : ZEND_ARG_INFO(0, suffix)
2193 : ZEND_END_ARG_INFO()
2194 :
2195 : ZEND_BEGIN_ARG_INFO(arginfo_dirname, 0)
2196 : ZEND_ARG_INFO(0, path)
2197 : ZEND_END_ARG_INFO()
2198 :
2199 : ZEND_BEGIN_ARG_INFO_EX(arginfo_pathinfo, 0, 0, 1)
2200 : ZEND_ARG_INFO(0, path)
2201 : ZEND_ARG_INFO(0, options)
2202 : ZEND_END_ARG_INFO()
2203 :
2204 : ZEND_BEGIN_ARG_INFO_EX(arginfo_stristr, 0, 0, 2)
2205 : ZEND_ARG_INFO(0, haystack)
2206 : ZEND_ARG_INFO(0, needle)
2207 : ZEND_ARG_INFO(0, part)
2208 : ZEND_END_ARG_INFO()
2209 :
2210 : ZEND_BEGIN_ARG_INFO_EX(arginfo_strstr, 0, 0, 2)
2211 : ZEND_ARG_INFO(0, haystack)
2212 : ZEND_ARG_INFO(0, needle)
2213 : ZEND_ARG_INFO(0, part)
2214 : ZEND_END_ARG_INFO()
2215 :
2216 : ZEND_BEGIN_ARG_INFO_EX(arginfo_strpos, 0, 0, 2)
2217 : ZEND_ARG_INFO(0, haystack)
2218 : ZEND_ARG_INFO(0, needle)
2219 : ZEND_ARG_INFO(0, offset)
2220 : ZEND_END_ARG_INFO()
2221 :
2222 : ZEND_BEGIN_ARG_INFO_EX(arginfo_stripos, 0, 0, 2)
2223 : ZEND_ARG_INFO(0, haystack)
2224 : ZEND_ARG_INFO(0, needle)
2225 : ZEND_ARG_INFO(0, offset)
2226 : ZEND_END_ARG_INFO()
2227 :
2228 : ZEND_BEGIN_ARG_INFO_EX(arginfo_strrpos, 0, 0, 2)
2229 : ZEND_ARG_INFO(0, haystack)
2230 : ZEND_ARG_INFO(0, needle)
2231 : ZEND_ARG_INFO(0, offset)
2232 : ZEND_END_ARG_INFO()
2233 :
2234 : ZEND_BEGIN_ARG_INFO_EX(arginfo_strripos, 0, 0, 2)
2235 : ZEND_ARG_INFO(0, haystack)
2236 : ZEND_ARG_INFO(0, needle)
2237 : ZEND_ARG_INFO(0, offset)
2238 : ZEND_END_ARG_INFO()
2239 :
2240 : ZEND_BEGIN_ARG_INFO(arginfo_strrchr, 0)
2241 : ZEND_ARG_INFO(0, haystack)
2242 : ZEND_ARG_INFO(0, needle)
2243 : ZEND_END_ARG_INFO()
2244 :
2245 : ZEND_BEGIN_ARG_INFO_EX(arginfo_chunk_split, 0, 0, 1)
2246 : ZEND_ARG_INFO(0, str)
2247 : ZEND_ARG_INFO(0, chunklen)
2248 : ZEND_ARG_INFO(0, ending)
2249 : ZEND_END_ARG_INFO()
2250 :
2251 : ZEND_BEGIN_ARG_INFO_EX(arginfo_substr, 0, 0, 2)
2252 : ZEND_ARG_INFO(0, str)
2253 : ZEND_ARG_INFO(0, start)
2254 : ZEND_ARG_INFO(0, length)
2255 : ZEND_END_ARG_INFO()
2256 :
2257 : ZEND_BEGIN_ARG_INFO_EX(arginfo_substr_replace, 0, 0, 3)
2258 : ZEND_ARG_INFO(0, str)
2259 : ZEND_ARG_INFO(0, replace)
2260 : ZEND_ARG_INFO(0, start)
2261 : ZEND_ARG_INFO(0, length)
2262 : ZEND_END_ARG_INFO()
2263 :
2264 : ZEND_BEGIN_ARG_INFO(arginfo_quotemeta, 0)
2265 : ZEND_ARG_INFO(0, str)
2266 : ZEND_END_ARG_INFO()
2267 :
2268 : ZEND_BEGIN_ARG_INFO(arginfo_ord, 0)
2269 : ZEND_ARG_INFO(0, character)
2270 : ZEND_END_ARG_INFO()
2271 :
2272 : ZEND_BEGIN_ARG_INFO(arginfo_chr, 0)
2273 : ZEND_ARG_INFO(0, codepoint)
2274 : ZEND_END_ARG_INFO()
2275 :
2276 : ZEND_BEGIN_ARG_INFO(arginfo_ucfirst, 0)
2277 : ZEND_ARG_INFO(0, str)
2278 : ZEND_END_ARG_INFO()
2279 :
2280 : ZEND_BEGIN_ARG_INFO(arginfo_lcfirst, 0)
2281 : ZEND_ARG_INFO(0, str)
2282 : ZEND_END_ARG_INFO()
2283 :
2284 : ZEND_BEGIN_ARG_INFO(arginfo_ucwords, 0)
2285 : ZEND_ARG_INFO(0, str)
2286 : ZEND_END_ARG_INFO()
2287 :
2288 : ZEND_BEGIN_ARG_INFO_EX(arginfo_strtr, 0, 0, 2)
2289 : ZEND_ARG_INFO(0, str)
2290 : ZEND_ARG_INFO(0, from)
2291 : ZEND_ARG_INFO(0, to)
2292 : ZEND_END_ARG_INFO()
2293 :
2294 : ZEND_BEGIN_ARG_INFO(arginfo_strrev, 0)
2295 : ZEND_ARG_INFO(0, str)
2296 : ZEND_END_ARG_INFO()
2297 :
2298 : ZEND_BEGIN_ARG_INFO_EX(arginfo_similar_text, 0, 0, 2)
2299 : ZEND_ARG_INFO(0, str1)
2300 : ZEND_ARG_INFO(0, str2)
2301 : ZEND_ARG_INFO(1, percent)
2302 : ZEND_END_ARG_INFO()
2303 :
2304 : ZEND_BEGIN_ARG_INFO(arginfo_addcslashes, 0)
2305 : ZEND_ARG_INFO(0, str)
2306 : ZEND_ARG_INFO(0, charlist)
2307 : ZEND_END_ARG_INFO()
2308 :
2309 : ZEND_BEGIN_ARG_INFO(arginfo_addslashes, 0)
2310 : ZEND_ARG_INFO(0, str)
2311 : ZEND_END_ARG_INFO()
2312 :
2313 : ZEND_BEGIN_ARG_INFO(arginfo_stripcslashes, 0)
2314 : ZEND_ARG_INFO(0, str)
2315 : ZEND_END_ARG_INFO()
2316 :
2317 : ZEND_BEGIN_ARG_INFO(arginfo_stripslashes, 0)
2318 : ZEND_ARG_INFO(0, str)
2319 : ZEND_END_ARG_INFO()
2320 :
2321 : ZEND_BEGIN_ARG_INFO_EX(arginfo_str_replace, 0, 0, 3)
2322 : ZEND_ARG_INFO(0, search)
2323 : ZEND_ARG_INFO(0, replace)
2324 : ZEND_ARG_INFO(0, subject)
2325 : ZEND_ARG_INFO(1, replace_count)
2326 : ZEND_END_ARG_INFO()
2327 :
2328 : ZEND_BEGIN_ARG_INFO_EX(arginfo_str_ireplace, 0, 0, 3)
2329 : ZEND_ARG_INFO(0, search)
2330 : ZEND_ARG_INFO(0, replace)
2331 : ZEND_ARG_INFO(0, subject)
2332 : ZEND_ARG_INFO(1, replace_count)
2333 : ZEND_END_ARG_INFO()
2334 :
2335 : ZEND_BEGIN_ARG_INFO_EX(arginfo_hebrev, 0, 0, 1)
2336 : ZEND_ARG_INFO(0, str)
2337 : ZEND_ARG_INFO(0, max_chars_per_line)
2338 : ZEND_END_ARG_INFO()
2339 :
2340 : ZEND_BEGIN_ARG_INFO_EX(arginfo_hebrevc, 0, 0, 1)
2341 : ZEND_ARG_INFO(0, str)
2342 : ZEND_ARG_INFO(0, max_chars_per_line)
2343 : ZEND_END_ARG_INFO()
2344 :
2345 : ZEND_BEGIN_ARG_INFO_EX(arginfo_nl2br, 0, 0, 1)
2346 : ZEND_ARG_INFO(0, str)
2347 : ZEND_ARG_INFO(0, is_xhtml)
2348 : ZEND_END_ARG_INFO()
2349 :
2350 : ZEND_BEGIN_ARG_INFO_EX(arginfo_strip_tags, 0, 0, 1)
2351 : ZEND_ARG_INFO(0, str)
2352 : ZEND_ARG_INFO(0, allowable_tags)
2353 : ZEND_END_ARG_INFO()
2354 :
2355 : ZEND_BEGIN_ARG_INFO_EX(arginfo_setlocale, 0, 0, 2)
2356 : ZEND_ARG_INFO(0, category)
2357 : ZEND_ARG_INFO(0, locale)
2358 : ZEND_ARG_INFO(0, ...)
2359 : ZEND_END_ARG_INFO()
2360 :
2361 : ZEND_BEGIN_ARG_INFO_EX(arginfo_parse_str, 0, 0, 1)
2362 : ZEND_ARG_INFO(0, encoded_string)
2363 : ZEND_ARG_INFO(1, result)
2364 : ZEND_END_ARG_INFO()
2365 :
2366 : ZEND_BEGIN_ARG_INFO_EX(arginfo_str_getcsv, 0, 0, 1)
2367 : ZEND_ARG_INFO(0, string)
2368 : ZEND_ARG_INFO(0, delimiter)
2369 : ZEND_ARG_INFO(0, enclosure)
2370 : ZEND_ARG_INFO(0, escape)
2371 : ZEND_END_ARG_INFO()
2372 :
2373 : ZEND_BEGIN_ARG_INFO(arginfo_str_repeat, 0)
2374 : ZEND_ARG_INFO(0, input)
2375 : ZEND_ARG_INFO(0, mult)
2376 : ZEND_END_ARG_INFO()
2377 :
2378 : ZEND_BEGIN_ARG_INFO_EX(arginfo_count_chars, 0, 0, 1)
2379 : ZEND_ARG_INFO(0, input)
2380 : ZEND_ARG_INFO(0, mode)
2381 : ZEND_END_ARG_INFO()
2382 :
2383 : ZEND_BEGIN_ARG_INFO(arginfo_strnatcmp, 0)
2384 : ZEND_ARG_INFO(0, s1)
2385 : ZEND_ARG_INFO(0, s2)
2386 : ZEND_END_ARG_INFO()
2387 :
2388 : ZEND_BEGIN_ARG_INFO(arginfo_localeconv, 0)
2389 : ZEND_END_ARG_INFO()
2390 :
2391 : ZEND_BEGIN_ARG_INFO(arginfo_strnatcasecmp, 0)
2392 : ZEND_ARG_INFO(0, s1)
2393 : ZEND_ARG_INFO(0, s2)
2394 : ZEND_END_ARG_INFO()
2395 :
2396 : ZEND_BEGIN_ARG_INFO_EX(arginfo_substr_count, 0, 0, 2)
2397 : ZEND_ARG_INFO(0, haystack)
2398 : ZEND_ARG_INFO(0, needle)
2399 : ZEND_ARG_INFO(0, offset)
2400 : ZEND_ARG_INFO(0, length)
2401 : ZEND_END_ARG_INFO()
2402 :
2403 : ZEND_BEGIN_ARG_INFO_EX(arginfo_str_pad, 0, 0, 2)
2404 : ZEND_ARG_INFO(0, input)
2405 : ZEND_ARG_INFO(0, pad_length)
2406 : ZEND_ARG_INFO(0, pad_string)
2407 : ZEND_ARG_INFO(0, pad_type)
2408 : ZEND_END_ARG_INFO()
2409 :
2410 : ZEND_BEGIN_ARG_INFO_EX(arginfo_sscanf, 1, 0, 2)
2411 : ZEND_ARG_INFO(0, str)
2412 : ZEND_ARG_INFO(0, format)
2413 : ZEND_ARG_INFO(1, ...)
2414 : ZEND_END_ARG_INFO()
2415 :
2416 : ZEND_BEGIN_ARG_INFO(arginfo_str_rot13, 0)
2417 : ZEND_ARG_INFO(0, str)
2418 : ZEND_END_ARG_INFO()
2419 :
2420 : ZEND_BEGIN_ARG_INFO(arginfo_str_shuffle, 0)
2421 : ZEND_ARG_INFO(0, str)
2422 : ZEND_END_ARG_INFO()
2423 :
2424 : ZEND_BEGIN_ARG_INFO_EX(arginfo_str_word_count, 0, 0, 1)
2425 : ZEND_ARG_INFO(0, str)
2426 : ZEND_ARG_INFO(0, format)
2427 : ZEND_ARG_INFO(0, charlist)
2428 : ZEND_END_ARG_INFO()
2429 :
2430 : #ifdef HAVE_STRFMON
2431 : ZEND_BEGIN_ARG_INFO(arginfo_money_format, 0)
2432 : ZEND_ARG_INFO(0, format)
2433 : ZEND_ARG_INFO(0, value)
2434 : ZEND_END_ARG_INFO()
2435 : #endif
2436 :
2437 : ZEND_BEGIN_ARG_INFO_EX(arginfo_str_split, 0, 0, 1)
2438 : ZEND_ARG_INFO(0, str)
2439 : ZEND_ARG_INFO(0, split_length)
2440 : ZEND_END_ARG_INFO()
2441 :
2442 : ZEND_BEGIN_ARG_INFO_EX(arginfo_strpbrk, 0, 0, 1)
2443 : ZEND_ARG_INFO(0, haystack)
2444 : ZEND_ARG_INFO(0, char_list)
2445 : ZEND_END_ARG_INFO()
2446 :
2447 : ZEND_BEGIN_ARG_INFO_EX(arginfo_substr_compare, 0, 0, 3)
2448 : ZEND_ARG_INFO(0, main_str)
2449 : ZEND_ARG_INFO(0, str)
2450 : ZEND_ARG_INFO(0, offset)
2451 : ZEND_ARG_INFO(0, length)
2452 : ZEND_ARG_INFO(0, case_sensitivity)
2453 : ZEND_END_ARG_INFO()
2454 : /* }}} */
2455 : /* {{{ syslog.c */
2456 : #ifdef HAVE_SYSLOG_H
2457 : ZEND_BEGIN_ARG_INFO(arginfo_define_syslog_variables, 0)
2458 : ZEND_END_ARG_INFO()
2459 :
2460 : ZEND_BEGIN_ARG_INFO(arginfo_openlog, 0)
2461 : ZEND_ARG_INFO(0, ident)
2462 : ZEND_ARG_INFO(0, option)
2463 : ZEND_ARG_INFO(0, facility)
2464 : ZEND_END_ARG_INFO()
2465 :
2466 : ZEND_BEGIN_ARG_INFO(arginfo_closelog, 0)
2467 : ZEND_END_ARG_INFO()
2468 :
2469 : ZEND_BEGIN_ARG_INFO(arginfo_syslog, 0)
2470 : ZEND_ARG_INFO(0, priority)
2471 : ZEND_ARG_INFO(0, message)
2472 : ZEND_END_ARG_INFO()
2473 : #endif
2474 : /* }}} */
2475 : /* {{{ type.c */
2476 : ZEND_BEGIN_ARG_INFO(arginfo_gettype, 0)
2477 : ZEND_ARG_INFO(0, var)
2478 : ZEND_END_ARG_INFO()
2479 :
2480 : ZEND_BEGIN_ARG_INFO(arginfo_settype, 0)
2481 : ZEND_ARG_INFO(1, var)
2482 : ZEND_ARG_INFO(0, type)
2483 : ZEND_END_ARG_INFO()
2484 :
2485 : ZEND_BEGIN_ARG_INFO_EX(arginfo_intval, 0, 0, 1)
2486 : ZEND_ARG_INFO(0, var)
2487 : ZEND_ARG_INFO(0, base)
2488 : ZEND_END_ARG_INFO()
2489 :
2490 : ZEND_BEGIN_ARG_INFO(arginfo_floatval, 0)
2491 : ZEND_ARG_INFO(0, var)
2492 : ZEND_END_ARG_INFO()
2493 :
2494 : ZEND_BEGIN_ARG_INFO(arginfo_strval, 0)
2495 : ZEND_ARG_INFO(0, var)
2496 : ZEND_END_ARG_INFO()
2497 :
2498 : ZEND_BEGIN_ARG_INFO(arginfo_is_null, 0)
2499 : ZEND_ARG_INFO(0, var)
2500 : ZEND_END_ARG_INFO()
2501 :
2502 : ZEND_BEGIN_ARG_INFO(arginfo_is_resource, 0)
2503 : ZEND_ARG_INFO(0, var)
2504 : ZEND_END_ARG_INFO()
2505 :
2506 : ZEND_BEGIN_ARG_INFO(arginfo_is_bool, 0)
2507 : ZEND_ARG_INFO(0, var)
2508 : ZEND_END_ARG_INFO()
2509 :
2510 : ZEND_BEGIN_ARG_INFO(arginfo_is_long, 0)
2511 : ZEND_ARG_INFO(0, var)
2512 : ZEND_END_ARG_INFO()
2513 :
2514 : ZEND_BEGIN_ARG_INFO(arginfo_is_float, 0)
2515 : ZEND_ARG_INFO(0, var)
2516 : ZEND_END_ARG_INFO()
2517 :
2518 : ZEND_BEGIN_ARG_INFO(arginfo_is_string, 0)
2519 : ZEND_ARG_INFO(0, var)
2520 : ZEND_END_ARG_INFO()
2521 :
2522 : ZEND_BEGIN_ARG_INFO(arginfo_is_array, 0)
2523 : ZEND_ARG_INFO(0, var)
2524 : ZEND_END_ARG_INFO()
2525 :
2526 : ZEND_BEGIN_ARG_INFO(arginfo_is_object, 0)
2527 : ZEND_ARG_INFO(0, var)
2528 : ZEND_END_ARG_INFO()
2529 :
2530 : ZEND_BEGIN_ARG_INFO(arginfo_is_numeric, 0)
2531 : ZEND_ARG_INFO(0, value)
2532 : ZEND_END_ARG_INFO()
2533 :
2534 : ZEND_BEGIN_ARG_INFO(arginfo_is_scalar, 0)
2535 : ZEND_ARG_INFO(0, value)
2536 : ZEND_END_ARG_INFO()
2537 :
2538 : ZEND_BEGIN_ARG_INFO_EX(arginfo_is_callable, 0, 0, 1)
2539 : ZEND_ARG_INFO(0, var)
2540 : ZEND_ARG_INFO(0, syntax_only)
2541 : ZEND_ARG_INFO(1, callable_name)
2542 : ZEND_END_ARG_INFO()
2543 : /* }}} */
2544 : /* {{{ uniqid.c */
2545 : #ifdef HAVE_GETTIMEOFDAY
2546 : ZEND_BEGIN_ARG_INFO_EX(arginfo_uniqid, 0, 0, 0)
2547 : ZEND_ARG_INFO(0, prefix)
2548 : ZEND_ARG_INFO(0, more_entropy)
2549 : ZEND_END_ARG_INFO()
2550 : #endif
2551 : /* }}} */
2552 : /* {{{ url.c */
2553 : ZEND_BEGIN_ARG_INFO_EX(arginfo_parse_url, 0, 0, 1)
2554 : ZEND_ARG_INFO(0, url)
2555 : ZEND_ARG_INFO(0, component)
2556 : ZEND_END_ARG_INFO()
2557 :
2558 : ZEND_BEGIN_ARG_INFO(arginfo_urlencode, 0)
2559 : ZEND_ARG_INFO(0, str)
2560 : ZEND_END_ARG_INFO()
2561 :
2562 : ZEND_BEGIN_ARG_INFO(arginfo_urldecode, 0)
2563 : ZEND_ARG_INFO(0, str)
2564 : ZEND_END_ARG_INFO()
2565 :
2566 : ZEND_BEGIN_ARG_INFO(arginfo_rawurlencode, 0)
2567 : ZEND_ARG_INFO(0, str)
2568 : ZEND_END_ARG_INFO()
2569 :
2570 : ZEND_BEGIN_ARG_INFO(arginfo_rawurldecode, 0)
2571 : ZEND_ARG_INFO(0, str)
2572 : ZEND_END_ARG_INFO()
2573 :
2574 : ZEND_BEGIN_ARG_INFO_EX(arginfo_get_headers, 0, 0, 1)
2575 : ZEND_ARG_INFO(0, url)
2576 : ZEND_ARG_INFO(0, format)
2577 : ZEND_END_ARG_INFO()
2578 : /* }}} */
2579 : /* {{{ user_filters.c */
2580 : ZEND_BEGIN_ARG_INFO(arginfo_stream_bucket_make_writeable, 0)
2581 : ZEND_ARG_INFO(0, brigade)
2582 : ZEND_END_ARG_INFO()
2583 :
2584 : ZEND_BEGIN_ARG_INFO(arginfo_stream_bucket_prepend, 0)
2585 : ZEND_ARG_INFO(0, brigade)
2586 : ZEND_ARG_INFO(0, bucket)
2587 : ZEND_END_ARG_INFO()
2588 :
2589 : ZEND_BEGIN_ARG_INFO(arginfo_stream_bucket_append, 0)
2590 : ZEND_ARG_INFO(0, brigade)
2591 : ZEND_ARG_INFO(0, bucket)
2592 : ZEND_END_ARG_INFO()
2593 :
2594 : ZEND_BEGIN_ARG_INFO(arginfo_stream_bucket_new, 0)
2595 : ZEND_ARG_INFO(0, stream)
2596 : ZEND_ARG_INFO(0, buffer)
2597 : ZEND_END_ARG_INFO()
2598 :
2599 : ZEND_BEGIN_ARG_INFO(arginfo_stream_get_filters, 0)
2600 : ZEND_END_ARG_INFO()
2601 :
2602 : ZEND_BEGIN_ARG_INFO(arginfo_stream_filter_register, 0)
2603 : ZEND_ARG_INFO(0, filtername)
2604 : ZEND_ARG_INFO(0, classname)
2605 : ZEND_END_ARG_INFO()
2606 : /* }}} */
2607 : /* {{{ uuencode.c */
2608 : ZEND_BEGIN_ARG_INFO(arginfo_convert_uuencode, 0)
2609 : ZEND_ARG_INFO(0, data)
2610 : ZEND_END_ARG_INFO()
2611 :
2612 : ZEND_BEGIN_ARG_INFO(arginfo_convert_uudecode, 0)
2613 : ZEND_ARG_INFO(0, data)
2614 : ZEND_END_ARG_INFO()
2615 : /* }}} */
2616 : /* {{{ var.c */
2617 : ZEND_BEGIN_ARG_INFO_EX(arginfo_var_dump, 0, 0, 1)
2618 : ZEND_ARG_INFO(0, var)
2619 : ZEND_ARG_INFO(0, ...)
2620 : ZEND_END_ARG_INFO()
2621 :
2622 : ZEND_BEGIN_ARG_INFO_EX(arginfo_debug_zval_dump, 0, 0, 1)
2623 : ZEND_ARG_INFO(0, var)
2624 : ZEND_ARG_INFO(0, ...)
2625 : ZEND_END_ARG_INFO()
2626 :
2627 : ZEND_BEGIN_ARG_INFO_EX(arginfo_var_export, 0, 0, 1)
2628 : ZEND_ARG_INFO(0, var)
2629 : ZEND_ARG_INFO(0, return)
2630 : ZEND_END_ARG_INFO()
2631 :
2632 : ZEND_BEGIN_ARG_INFO(arginfo_serialize, 0)
2633 : ZEND_ARG_INFO(0, var)
2634 : ZEND_END_ARG_INFO()
2635 :
2636 : ZEND_BEGIN_ARG_INFO(arginfo_unserialize, 0)
2637 : ZEND_ARG_INFO(0, variable_representation)
2638 : ZEND_END_ARG_INFO()
2639 :
2640 : ZEND_BEGIN_ARG_INFO_EX(arginfo_memory_get_usage, 0, 0, 0)
2641 : ZEND_ARG_INFO(0, real_usage)
2642 : ZEND_END_ARG_INFO()
2643 :
2644 : ZEND_BEGIN_ARG_INFO_EX(arginfo_memory_get_peak_usage, 0, 0, 0)
2645 : ZEND_ARG_INFO(0, real_usage)
2646 : ZEND_END_ARG_INFO()
2647 : /* }}} */
2648 : /* {{{ versioning.c */
2649 : ZEND_BEGIN_ARG_INFO_EX(arginfo_version_compare, 0, 0, 2)
2650 : ZEND_ARG_INFO(0, ver1)
2651 : ZEND_ARG_INFO(0, ver2)
2652 : ZEND_ARG_INFO(0, oper)
2653 : ZEND_END_ARG_INFO()
2654 : /* }}} */
2655 : /* }}} */
2656 :
2657 : const zend_function_entry basic_functions[] = { /* {{{ */
2658 : PHP_FE(constant, arginfo_constant)
2659 : PHP_FE(bin2hex, arginfo_bin2hex)
2660 : PHP_FE(sleep, arginfo_sleep)
2661 : PHP_FE(usleep, arginfo_usleep)
2662 : #if HAVE_NANOSLEEP
2663 : PHP_FE(time_nanosleep, arginfo_time_nanosleep)
2664 : PHP_FE(time_sleep_until, arginfo_time_sleep_until)
2665 : #endif
2666 :
2667 : #if HAVE_STRPTIME
2668 : PHP_FE(strptime, arginfo_strptime)
2669 : #endif
2670 :
2671 : PHP_FE(flush, arginfo_flush)
2672 : PHP_FE(wordwrap, arginfo_wordwrap)
2673 : PHP_FE(htmlspecialchars, arginfo_htmlspecialchars)
2674 : PHP_FE(htmlentities, arginfo_htmlentities)
2675 : PHP_FE(html_entity_decode, arginfo_html_entity_decode)
2676 : PHP_FE(htmlspecialchars_decode, arginfo_htmlspecialchars_decode)
2677 : PHP_FE(get_html_translation_table, arginfo_get_html_translation_table)
2678 : PHP_FE(sha1, arginfo_sha1)
2679 : PHP_FE(sha1_file, arginfo_sha1_file)
2680 : PHP_NAMED_FE(md5,php_if_md5, arginfo_md5)
2681 : PHP_NAMED_FE(md5_file,php_if_md5_file, arginfo_md5_file)
2682 : PHP_NAMED_FE(crc32,php_if_crc32, arginfo_crc32)
2683 :
2684 : PHP_FE(iptcparse, arginfo_iptcparse)
2685 : PHP_FE(iptcembed, arginfo_iptcembed)
2686 : PHP_FE(getimagesize, arginfo_getimagesize)
2687 : PHP_FE(image_type_to_mime_type, arginfo_image_type_to_mime_type)
2688 : PHP_FE(image_type_to_extension, arginfo_image_type_to_extension)
2689 :
2690 : PHP_FE(phpinfo, arginfo_phpinfo)
2691 : PHP_FE(phpversion, arginfo_phpversion)
2692 : PHP_FE(phpcredits, arginfo_phpcredits)
2693 : PHP_FE(php_logo_guid, arginfo_php_logo_guid)
2694 : PHP_FE(php_real_logo_guid, arginfo_php_real_logo_guid)
2695 : PHP_FE(php_egg_logo_guid, arginfo_php_egg_logo_guid)
2696 : PHP_FE(zend_logo_guid, arginfo_zend_logo_guid)
2697 : PHP_FE(php_sapi_name, arginfo_php_sapi_name)
2698 : PHP_FE(php_uname, arginfo_php_uname)
2699 : PHP_FE(php_ini_scanned_files, arginfo_php_ini_scanned_files)
2700 : PHP_FE(php_ini_loaded_file, arginfo_php_ini_loaded_file)
2701 :
2702 : PHP_FE(strnatcmp, arginfo_strnatcmp)
2703 : PHP_FE(strnatcasecmp, arginfo_strnatcasecmp)
2704 : PHP_FE(substr_count, arginfo_substr_count)
2705 : PHP_FE(strspn, arginfo_strspn)
2706 : PHP_FE(strcspn, arginfo_strcspn)
2707 : PHP_FE(strtok, arginfo_strtok)
2708 : PHP_FE(strtoupper, arginfo_strtoupper)
2709 : PHP_FE(strtolower, arginfo_strtolower)
2710 : PHP_FE(strpos, arginfo_strpos)
2711 : PHP_FE(stripos, arginfo_stripos)
2712 : PHP_FE(strrpos, arginfo_strrpos)
2713 : PHP_FE(strripos, arginfo_strripos)
2714 : PHP_FE(strrev, arginfo_strrev)
2715 : PHP_FE(hebrev, arginfo_hebrev)
2716 : PHP_FE(hebrevc, arginfo_hebrevc)
2717 : PHP_FE(nl2br, arginfo_nl2br)
2718 : PHP_FE(basename, arginfo_basename)
2719 : PHP_FE(dirname, arginfo_dirname)
2720 : PHP_FE(pathinfo, arginfo_pathinfo)
2721 : PHP_FE(stripslashes, arginfo_stripslashes)
2722 : PHP_FE(stripcslashes, arginfo_stripcslashes)
2723 : PHP_FE(strstr, arginfo_strstr)
2724 : PHP_FE(stristr, arginfo_stristr)
2725 : PHP_FE(strrchr, arginfo_strrchr)
2726 : PHP_FE(str_shuffle, arginfo_str_shuffle)
2727 : PHP_FE(str_word_count, arginfo_str_word_count)
2728 : PHP_FE(str_split, arginfo_str_split)
2729 : PHP_FE(strpbrk, arginfo_strpbrk)
2730 : PHP_FE(substr_compare, arginfo_substr_compare)
2731 :
2732 : #ifdef HAVE_STRCOLL
2733 : PHP_FE(strcoll, arginfo_strcoll)
2734 : #endif
2735 :
2736 : #ifdef HAVE_STRFMON
2737 : PHP_FE(money_format, arginfo_money_format)
2738 : #endif
2739 :
2740 : PHP_FE(substr, arginfo_substr)
2741 : PHP_FE(substr_replace, arginfo_substr_replace)
2742 : PHP_FE(quotemeta, arginfo_quotemeta)
2743 : PHP_FE(ucfirst, arginfo_ucfirst)
2744 : PHP_FE(lcfirst, arginfo_lcfirst)
2745 : PHP_FE(ucwords, arginfo_ucwords)
2746 : PHP_FE(strtr, arginfo_strtr)
2747 : PHP_FE(addslashes, arginfo_addslashes)
2748 : PHP_FE(addcslashes, arginfo_addcslashes)
2749 : PHP_FE(rtrim, arginfo_rtrim)
2750 : PHP_FE(str_replace, arginfo_str_replace)
2751 : PHP_FE(str_ireplace, arginfo_str_ireplace)
2752 : PHP_FE(str_repeat, arginfo_str_repeat)
2753 : PHP_FE(count_chars, arginfo_count_chars)
2754 : PHP_FE(chunk_split, arginfo_chunk_split)
2755 : PHP_FE(trim, arginfo_trim)
2756 : PHP_FE(ltrim, arginfo_ltrim)
2757 : PHP_FE(strip_tags, arginfo_strip_tags)
2758 : PHP_FE(similar_text, arginfo_similar_text)
2759 : PHP_FE(explode, arginfo_explode)
2760 : PHP_FE(implode, arginfo_implode)
2761 : PHP_FALIAS(join, implode, arginfo_implode)
2762 : PHP_FE(setlocale, arginfo_setlocale)
2763 : PHP_FE(localeconv, arginfo_localeconv)
2764 :
2765 : #if HAVE_NL_LANGINFO
2766 : PHP_FE(nl_langinfo, arginfo_nl_langinfo)
2767 : #endif
2768 :
2769 : PHP_FE(soundex, arginfo_soundex)
2770 : PHP_FE(levenshtein, arginfo_levenshtein)
2771 : PHP_FE(chr, arginfo_chr)
2772 : PHP_FE(ord, arginfo_ord)
2773 : PHP_FE(parse_str, arginfo_parse_str)
2774 : PHP_FE(str_getcsv, arginfo_str_getcsv)
2775 : PHP_FE(str_pad, arginfo_str_pad)
2776 : PHP_FALIAS(chop, rtrim, arginfo_rtrim)
2777 : PHP_FALIAS(strchr, strstr, arginfo_strstr)
2778 : PHP_NAMED_FE(sprintf, PHP_FN(user_sprintf), arginfo_sprintf)
2779 : PHP_NAMED_FE(printf, PHP_FN(user_printf), arginfo_printf)
2780 : PHP_FE(vprintf, arginfo_vprintf)
2781 : PHP_FE(vsprintf, arginfo_vsprintf)
2782 : PHP_FE(fprintf, arginfo_fprintf)
2783 : PHP_FE(vfprintf, arginfo_vfprintf)
2784 : PHP_FE(sscanf, arginfo_sscanf)
2785 : PHP_FE(fscanf, arginfo_fscanf)
2786 : PHP_FE(parse_url, arginfo_parse_url)
2787 : PHP_FE(urlencode, arginfo_urlencode)
2788 : PHP_FE(urldecode, arginfo_urldecode)
2789 : PHP_FE(rawurlencode, arginfo_rawurlencode)
2790 : PHP_FE(rawurldecode, arginfo_rawurldecode)
2791 : PHP_FE(http_build_query, arginfo_http_build_query)
2792 :
2793 : #if defined(HAVE_SYMLINK) || defined(PHP_WIN32)
2794 : PHP_FE(readlink, arginfo_readlink)
2795 : PHP_FE(linkinfo, arginfo_linkinfo)
2796 : PHP_FE(symlink, arginfo_symlink)
2797 : PHP_FE(link, arginfo_link)
2798 : #endif
2799 :
2800 : PHP_FE(unlink, arginfo_unlink)
2801 : PHP_FE(exec, arginfo_exec)
2802 : PHP_FE(system, arginfo_system)
2803 : PHP_FE(escapeshellcmd, arginfo_escapeshellcmd)
2804 : PHP_FE(escapeshellarg, arginfo_escapeshellarg)
2805 : PHP_FE(passthru, arginfo_passthru)
2806 : PHP_FE(shell_exec, arginfo_shell_exec)
2807 : #ifdef PHP_CAN_SUPPORT_PROC_OPEN
2808 : PHP_FE(proc_open, arginfo_proc_open)
2809 : PHP_FE(proc_close, arginfo_proc_close)
2810 : PHP_FE(proc_terminate, arginfo_proc_terminate)
2811 : PHP_FE(proc_get_status, arginfo_proc_get_status)
2812 : #endif
2813 :
2814 : #ifdef HAVE_NICE
2815 : PHP_FE(proc_nice, arginfo_proc_nice)
2816 : #endif
2817 :
2818 : PHP_FE(rand, arginfo_rand)
2819 : PHP_FE(srand, arginfo_srand)
2820 : PHP_FE(getrandmax, arginfo_getrandmax)
2821 : PHP_FE(mt_rand, arginfo_mt_rand)
2822 : PHP_FE(mt_srand, arginfo_mt_srand)
2823 : PHP_FE(mt_getrandmax, arginfo_mt_getrandmax)
2824 :
2825 : #if HAVE_GETSERVBYNAME
2826 : PHP_FE(getservbyname, arginfo_getservbyname)
2827 : #endif
2828 :
2829 : #if HAVE_GETSERVBYPORT
2830 : PHP_FE(getservbyport, arginfo_getservbyport)
2831 : #endif
2832 :
2833 : #if HAVE_GETPROTOBYNAME
2834 : PHP_FE(getprotobyname, arginfo_getprotobyname)
2835 : #endif
2836 :
2837 : #if HAVE_GETPROTOBYNUMBER
2838 : PHP_FE(getprotobynumber, arginfo_getprotobynumber)
2839 : #endif
2840 :
2841 : PHP_FE(getmyuid, arginfo_getmyuid)
2842 : PHP_FE(getmygid, arginfo_getmygid)
2843 : PHP_FE(getmypid, arginfo_getmypid)
2844 : PHP_FE(getmyinode, arginfo_getmyinode)
2845 : PHP_FE(getlastmod, arginfo_getlastmod)
2846 :
2847 : PHP_FE(base64_decode, arginfo_base64_decode)
2848 : PHP_FE(base64_encode, arginfo_base64_encode)
2849 :
2850 : PHP_FE(convert_uuencode, arginfo_convert_uuencode)
2851 : PHP_FE(convert_uudecode, arginfo_convert_uudecode)
2852 :
2853 : PHP_FE(abs, arginfo_abs)
2854 : PHP_FE(ceil, arginfo_ceil)
2855 : PHP_FE(floor, arginfo_floor)
2856 : PHP_FE(round, arginfo_round)
2857 : PHP_FE(sin, arginfo_sin)
2858 : PHP_FE(cos, arginfo_cos)
2859 : PHP_FE(tan, arginfo_tan)
2860 : PHP_FE(asin, arginfo_asin)
2861 : PHP_FE(acos, arginfo_acos)
2862 : PHP_FE(atan, arginfo_atan)
2863 : PHP_FE(atanh, arginfo_atanh)
2864 : PHP_FE(atan2, arginfo_atan2)
2865 : PHP_FE(sinh, arginfo_sinh)
2866 : PHP_FE(cosh, arginfo_cosh)
2867 : PHP_FE(tanh, arginfo_tanh)
2868 : PHP_FE(asinh, arginfo_asinh)
2869 : PHP_FE(acosh, arginfo_acosh)
2870 : PHP_FE(expm1, arginfo_expm1)
2871 : PHP_FE(log1p, arginfo_log1p)
2872 : PHP_FE(pi, arginfo_pi)
2873 : PHP_FE(is_finite, arginfo_is_finite)
2874 : PHP_FE(is_nan, arginfo_is_nan)
2875 : PHP_FE(is_infinite, arginfo_is_infinite)
2876 : PHP_FE(pow, arginfo_pow)
2877 : PHP_FE(exp, arginfo_exp)
2878 : PHP_FE(log, arginfo_log)
2879 : PHP_FE(log10, arginfo_log10)
2880 : PHP_FE(sqrt, arginfo_sqrt)
2881 : PHP_FE(hypot, arginfo_hypot)
2882 : PHP_FE(deg2rad, arginfo_deg2rad)
2883 : PHP_FE(rad2deg, arginfo_rad2deg)
2884 : PHP_FE(bindec, arginfo_bindec)
2885 : PHP_FE(hexdec, arginfo_hexdec)
2886 : PHP_FE(octdec, arginfo_octdec)
2887 : PHP_FE(decbin, arginfo_decbin)
2888 : PHP_FE(decoct, arginfo_decoct)
2889 : PHP_FE(dechex, arginfo_dechex)
2890 : PHP_FE(base_convert, arginfo_base_convert)
2891 : PHP_FE(number_format, arginfo_number_format)
2892 : PHP_FE(fmod, arginfo_fmod)
2893 : #ifdef HAVE_INET_NTOP
2894 : PHP_RAW_NAMED_FE(inet_ntop, php_inet_ntop, arginfo_inet_ntop)
2895 : #endif
2896 : #ifdef HAVE_INET_PTON
2897 : PHP_RAW_NAMED_FE(inet_pton, php_inet_pton, arginfo_inet_pton)
2898 : #endif
2899 : PHP_FE(ip2long, arginfo_ip2long)
2900 : PHP_FE(long2ip, arginfo_long2ip)
2901 :
2902 : PHP_FE(getenv, arginfo_getenv)
2903 : #ifdef HAVE_PUTENV
2904 : PHP_FE(putenv, arginfo_putenv)
2905 : #endif
2906 :
2907 : PHP_FE(getopt, arginfo_getopt)
2908 :
2909 : #ifdef HAVE_GETLOADAVG
2910 : PHP_FE(sys_getloadavg, arginfo_sys_getloadavg)
2911 : #endif
2912 : #ifdef HAVE_GETTIMEOFDAY
2913 : PHP_FE(microtime, arginfo_microtime)
2914 : PHP_FE(gettimeofday, arginfo_gettimeofday)
2915 : #endif
2916 :
2917 : #ifdef HAVE_GETRUSAGE
2918 : PHP_FE(getrusage, arginfo_getrusage)
2919 : #endif
2920 :
2921 : #ifdef HAVE_GETTIMEOFDAY
2922 : PHP_FE(uniqid, arginfo_uniqid)
2923 : #endif
2924 :
2925 : PHP_FE(quoted_printable_decode, arginfo_quoted_printable_decode)
2926 : PHP_FE(quoted_printable_encode, arginfo_quoted_printable_encode)
2927 : PHP_FE(convert_cyr_string, arginfo_convert_cyr_string)
2928 : PHP_FE(get_current_user, arginfo_get_current_user)
2929 : PHP_FE(set_time_limit, arginfo_set_time_limit)
2930 : PHP_FE(get_cfg_var, arginfo_get_cfg_var)
2931 :
2932 : PHP_DEP_FALIAS(magic_quotes_runtime, set_magic_quotes_runtime, arginfo_set_magic_quotes_runtime)
2933 : PHP_DEP_FE(set_magic_quotes_runtime, arginfo_set_magic_quotes_runtime)
2934 : PHP_FE(get_magic_quotes_gpc, arginfo_get_magic_quotes_gpc)
2935 : PHP_FE(get_magic_quotes_runtime, arginfo_get_magic_quotes_runtime)
2936 :
2937 : PHP_FE(import_request_variables, arginfo_import_request_variables)
2938 : PHP_FE(error_log, arginfo_error_log)
2939 : PHP_FE(error_get_last, arginfo_error_get_last)
2940 : PHP_FE(call_user_func, arginfo_call_user_func)
2941 : PHP_FE(call_user_func_array, arginfo_call_user_func_array)
2942 : PHP_DEP_FE(call_user_method, arginfo_call_user_method)
2943 : PHP_DEP_FE(call_user_method_array, arginfo_call_user_method_array)
2944 : PHP_FE(forward_static_call, arginfo_forward_static_call)
2945 : PHP_FE(forward_static_call_array, arginfo_forward_static_call_array)
2946 : PHP_FE(serialize, arginfo_serialize)
2947 : PHP_FE(unserialize, arginfo_unserialize)
2948 :
2949 : PHP_FE(var_dump, arginfo_var_dump)
2950 : PHP_FE(var_export, arginfo_var_export)
2951 : PHP_FE(debug_zval_dump, arginfo_debug_zval_dump)
2952 : PHP_FE(print_r, arginfo_print_r)
2953 : PHP_FE(memory_get_usage, arginfo_memory_get_usage)
2954 : PHP_FE(memory_get_peak_usage, arginfo_memory_get_peak_usage)
2955 :
2956 : PHP_FE(register_shutdown_function, arginfo_register_shutdown_function)
2957 : PHP_FE(register_tick_function, arginfo_register_tick_function)
2958 : PHP_FE(unregister_tick_function, arginfo_unregister_tick_function)
2959 :
2960 : PHP_FE(highlight_file, arginfo_highlight_file)
2961 : PHP_FALIAS(show_source, highlight_file, arginfo_highlight_file)
2962 : PHP_FE(highlight_string, arginfo_highlight_string)
2963 : PHP_FE(php_strip_whitespace, arginfo_php_strip_whitespace)
2964 :
2965 : PHP_FE(ini_get, arginfo_ini_get)
2966 : PHP_FE(ini_get_all, arginfo_ini_get_all)
2967 : PHP_FE(ini_set, arginfo_ini_set)
2968 : PHP_FALIAS(ini_alter, ini_set, arginfo_ini_set)
2969 : PHP_FE(ini_restore, arginfo_ini_restore)
2970 : PHP_FE(get_include_path, arginfo_get_include_path)
2971 : PHP_FE(set_include_path, arginfo_set_include_path)
2972 : PHP_FE(restore_include_path, arginfo_restore_include_path)
2973 :
2974 : PHP_FE(setcookie, arginfo_setcookie)
2975 : PHP_FE(setrawcookie, arginfo_setrawcookie)
2976 : PHP_FE(header, arginfo_header)
2977 : PHP_FE(header_remove, arginfo_header_remove)
2978 : PHP_FE(headers_sent, arginfo_headers_sent)
2979 : PHP_FE(headers_list, arginfo_headers_list)
2980 :
2981 : PHP_FE(connection_aborted, arginfo_connection_aborted)
2982 : PHP_FE(connection_status, arginfo_connection_status)
2983 : PHP_FE(ignore_user_abort, arginfo_ignore_user_abort)
2984 : PHP_FE(parse_ini_file, arginfo_parse_ini_file)
2985 : PHP_FE(parse_ini_string, arginfo_parse_ini_string)
2986 : #if ZEND_DEBUG
2987 : PHP_FE(config_get_hash, arginfo_config_get_hash)
2988 : #endif
2989 : PHP_FE(is_uploaded_file, arginfo_is_uploaded_file)
2990 : PHP_FE(move_uploaded_file, arginfo_move_uploaded_file)
2991 :
2992 : /* functions from dns.c */
2993 : PHP_FE(gethostbyaddr, arginfo_gethostbyaddr)
2994 : PHP_FE(gethostbyname, arginfo_gethostbyname)
2995 : PHP_FE(gethostbynamel, arginfo_gethostbynamel)
2996 :
2997 : #ifdef HAVE_GETHOSTNAME
2998 : PHP_FE(gethostname, arginfo_gethostname)
2999 : #endif
3000 :
3001 : #if defined(PHP_WIN32) || (HAVE_DNS_SEARCH_FUNC && !(defined(__BEOS__) || defined(NETWARE)))
3002 :
3003 : PHP_FE(dns_check_record, arginfo_dns_check_record)
3004 : PHP_FALIAS(checkdnsrr, dns_check_record, arginfo_dns_check_record)
3005 :
3006 : # if defined(PHP_WIN32) || HAVE_FULL_DNS_FUNCS
3007 : PHP_FE(dns_get_mx, arginfo_dns_get_mx)
3008 : PHP_FALIAS(getmxrr, dns_get_mx, arginfo_dns_get_mx)
3009 : PHP_FE(dns_get_record, arginfo_dns_get_record)
3010 : # endif
3011 : #endif
3012 :
3013 : /* functions from type.c */
3014 : PHP_FE(intval, arginfo_intval)
3015 : PHP_FE(floatval, arginfo_floatval)
3016 : PHP_FALIAS(doubleval, floatval, arginfo_floatval)
3017 : PHP_FE(strval, arginfo_strval)
3018 : PHP_FE(gettype, arginfo_gettype)
3019 : PHP_FE(settype, arginfo_settype)
3020 : PHP_FE(is_null, arginfo_is_null)
3021 : PHP_FE(is_resource, arginfo_is_resource)
3022 : PHP_FE(is_bool, arginfo_is_bool)
3023 : PHP_FE(is_long, arginfo_is_long)
3024 : PHP_FE(is_float, arginfo_is_float)
3025 : PHP_FALIAS(is_int, is_long, arginfo_is_long)
3026 : PHP_FALIAS(is_integer, is_long, arginfo_is_long)
3027 : PHP_FALIAS(is_double, is_float, arginfo_is_float)
3028 : PHP_FALIAS(is_real, is_float, arginfo_is_float)
3029 : PHP_FE(is_numeric, arginfo_is_numeric)
3030 : PHP_FE(is_string, arginfo_is_string)
3031 : PHP_FE(is_array, arginfo_is_array)
3032 : PHP_FE(is_object, arginfo_is_object)
3033 : PHP_FE(is_scalar, arginfo_is_scalar)
3034 : PHP_FE(is_callable, arginfo_is_callable)
3035 :
3036 : /* functions from file.c */
3037 : PHP_FE(pclose, arginfo_pclose)
3038 : PHP_FE(popen, arginfo_popen)
3039 : PHP_FE(readfile, arginfo_readfile)
3040 : PHP_FE(rewind, arginfo_rewind)
3041 : PHP_FE(rmdir, arginfo_rmdir)
3042 : PHP_FE(umask, arginfo_umask)
3043 : PHP_FE(fclose, arginfo_fclose)
3044 : PHP_FE(feof, arginfo_feof)
3045 : PHP_FE(fgetc, arginfo_fgetc)
3046 : PHP_FE(fgets, arginfo_fgets)
3047 : PHP_FE(fgetss, arginfo_fgetss)
3048 : PHP_FE(fread, arginfo_fread)
3049 : PHP_NAMED_FE(fopen, php_if_fopen, arginfo_fopen)
3050 : PHP_FE(fpassthru, arginfo_fpassthru)
3051 : PHP_NAMED_FE(ftruncate, php_if_ftruncate, arginfo_ftruncate)
3052 : PHP_NAMED_FE(fstat, php_if_fstat, arginfo_fstat)
3053 : PHP_FE(fseek, arginfo_fseek)
3054 : PHP_FE(ftell, arginfo_ftell)
3055 : PHP_FE(fflush, arginfo_fflush)
3056 : PHP_FE(fwrite, arginfo_fwrite)
3057 : PHP_FALIAS(fputs, fwrite, arginfo_fwrite)
3058 : PHP_FE(mkdir, arginfo_mkdir)
3059 : PHP_FE(rename, arginfo_rename)
3060 : PHP_FE(copy, arginfo_copy)
3061 : PHP_FE(tempnam, arginfo_tempnam)
3062 : PHP_NAMED_FE(tmpfile, php_if_tmpfile, arginfo_tmpfile)
3063 : PHP_FE(file, arginfo_file)
3064 : PHP_FE(file_get_contents, arginfo_file_get_contents)
3065 : PHP_FE(file_put_contents, arginfo_file_put_contents)
3066 : PHP_FE(stream_select, arginfo_stream_select)
3067 : PHP_FE(stream_context_create, arginfo_stream_context_create)
3068 : PHP_FE(stream_context_set_params, arginfo_stream_context_set_params)
3069 : PHP_FE(stream_context_get_params, arginfo_stream_context_get_params)
3070 : PHP_FE(stream_context_set_option, arginfo_stream_context_set_option)
3071 : PHP_FE(stream_context_get_options, arginfo_stream_context_get_options)
3072 : PHP_FE(stream_context_get_default, arginfo_stream_context_get_default)
3073 : PHP_FE(stream_context_set_default, arginfo_stream_context_set_default)
3074 : PHP_FE(stream_filter_prepend, arginfo_stream_filter_prepend)
3075 : PHP_FE(stream_filter_append, arginfo_stream_filter_append)
3076 : PHP_FE(stream_filter_remove, arginfo_stream_filter_remove)
3077 : PHP_FE(stream_socket_client, arginfo_stream_socket_client)
3078 : PHP_FE(stream_socket_server, arginfo_stream_socket_server)
3079 : PHP_FE(stream_socket_accept, arginfo_stream_socket_accept)
3080 : PHP_FE(stream_socket_get_name, arginfo_stream_socket_get_name)
3081 : PHP_FE(stream_socket_recvfrom, arginfo_stream_socket_recvfrom)
3082 : PHP_FE(stream_socket_sendto, arginfo_stream_socket_sendto)
3083 : PHP_FE(stream_socket_enable_crypto, arginfo_stream_socket_enable_crypto)
3084 : #ifdef HAVE_SHUTDOWN
3085 : PHP_FE(stream_socket_shutdown, arginfo_stream_socket_shutdown)
3086 : #endif
3087 : #if HAVE_SOCKETPAIR
3088 : PHP_FE(stream_socket_pair, arginfo_stream_socket_pair)
3089 : #endif
3090 : PHP_FE(stream_copy_to_stream, arginfo_stream_copy_to_stream)
3091 : PHP_FE(stream_get_contents, arginfo_stream_get_contents)
3092 : PHP_FE(stream_supports_lock, arginfo_stream_supports_lock)
3093 : PHP_FE(fgetcsv, arginfo_fgetcsv)
3094 : PHP_FE(fputcsv, arginfo_fputcsv)
3095 : PHP_FE(flock, arginfo_flock)
3096 : PHP_FE(get_meta_tags, arginfo_get_meta_tags)
3097 : PHP_FE(stream_set_write_buffer, arginfo_stream_set_write_buffer)
3098 : PHP_FALIAS(set_file_buffer, stream_set_write_buffer, arginfo_stream_set_write_buffer)
3099 :
3100 : PHP_DEP_FALIAS(set_socket_blocking, stream_set_blocking, arginfo_stream_set_blocking)
3101 : PHP_FE(stream_set_blocking, arginfo_stream_set_blocking)
3102 : PHP_FALIAS(socket_set_blocking, stream_set_blocking, arginfo_stream_set_blocking)
3103 :
3104 : PHP_FE(stream_get_meta_data, arginfo_stream_get_meta_data)
3105 : PHP_FE(stream_get_line, arginfo_stream_get_line)
3106 : PHP_FE(stream_wrapper_register, arginfo_stream_wrapper_register)
3107 : PHP_FALIAS(stream_register_wrapper, stream_wrapper_register, arginfo_stream_wrapper_register)
3108 : PHP_FE(stream_wrapper_unregister, arginfo_stream_wrapper_unregister)
3109 : PHP_FE(stream_wrapper_restore, arginfo_stream_wrapper_restore)
3110 : PHP_FE(stream_get_wrappers, arginfo_stream_get_wrappers)
3111 : PHP_FE(stream_get_transports, arginfo_stream_get_transports)
3112 : PHP_FE(stream_is_local, arginfo_stream_is_local)
3113 : PHP_FE(get_headers, arginfo_get_headers)
3114 :
3115 : #if HAVE_SYS_TIME_H || defined(PHP_WIN32)
3116 : PHP_FE(stream_set_timeout, arginfo_stream_set_timeout)
3117 : PHP_FALIAS(socket_set_timeout, stream_set_timeout, arginfo_stream_set_timeout)
3118 : #endif
3119 :
3120 : PHP_FALIAS(socket_get_status, stream_get_meta_data, arginfo_stream_get_meta_data)
3121 :
3122 : #if (!defined(__BEOS__) && !defined(NETWARE) && HAVE_REALPATH) || defined(ZTS)
3123 : PHP_FE(realpath, arginfo_realpath)
3124 : #endif
3125 :
3126 : #ifdef HAVE_FNMATCH
3127 : PHP_FE(fnmatch, arginfo_fnmatch)
3128 : #endif
3129 :
3130 : /* functions from fsock.c */
3131 : PHP_FE(fsockopen, arginfo_fsockopen)
3132 : PHP_FE(pfsockopen, arginfo_pfsockopen)
3133 :
3134 : /* functions from pack.c */
3135 : PHP_FE(pack, arginfo_pack)
3136 : PHP_FE(unpack, arginfo_unpack)
3137 :
3138 : /* functions from browscap.c */
3139 : PHP_FE(get_browser, arginfo_get_browser)
3140 :
3141 : #if HAVE_CRYPT
3142 : /* functions from crypt.c */
3143 : PHP_FE(crypt, arginfo_crypt)
3144 : #endif
3145 :
3146 : /* functions from dir.c */
3147 : PHP_FE(opendir, arginfo_opendir)
3148 : PHP_FE(closedir, arginfo_closedir)
3149 : PHP_FE(chdir, arginfo_chdir)
3150 :
3151 : #if defined(HAVE_CHROOT) && !defined(ZTS) && ENABLE_CHROOT_FUNC
3152 : PHP_FE(chroot, arginfo_chroot)
3153 : #endif
3154 :
3155 : PHP_FE(getcwd, arginfo_getcwd)
3156 : PHP_FE(rewinddir, arginfo_rewinddir)
3157 : PHP_NAMED_FE(readdir, php_if_readdir, arginfo_readdir)
3158 : PHP_FALIAS(dir, getdir, arginfo_dir)
3159 : PHP_FE(scandir, arginfo_scandir)
3160 : #ifdef HAVE_GLOB
3161 : PHP_FE(glob, arginfo_glob)
3162 : #endif
3163 : /* functions from filestat.c */
3164 : PHP_FE(fileatime, arginfo_fileatime)
3165 : PHP_FE(filectime, arginfo_filectime)
3166 : PHP_FE(filegroup, arginfo_filegroup)
3167 : PHP_FE(fileinode, arginfo_fileinode)
3168 : PHP_FE(filemtime, arginfo_filemtime)
3169 : PHP_FE(fileowner, arginfo_fileowner)
3170 : PHP_FE(fileperms, arginfo_fileperms)
3171 : PHP_FE(filesize, arginfo_filesize)
3172 : PHP_FE(filetype, arginfo_filetype)
3173 : PHP_FE(file_exists, arginfo_file_exists)
3174 : PHP_FE(is_writable, arginfo_is_writable)
3175 : PHP_FALIAS(is_writeable, is_writable, arginfo_is_writable)
3176 : PHP_FE(is_readable, arginfo_is_readable)
3177 : PHP_FE(is_executable, arginfo_is_executable)
3178 : PHP_FE(is_file, arginfo_is_file)
3179 : PHP_FE(is_dir, arginfo_is_dir)
3180 : PHP_FE(is_link, arginfo_is_link)
3181 : PHP_NAMED_FE(stat, php_if_stat, arginfo_stat)
3182 : PHP_NAMED_FE(lstat, php_if_lstat, arginfo_lstat)
3183 : #ifndef NETWARE
3184 : PHP_FE(chown, arginfo_chown)
3185 : PHP_FE(chgrp, arginfo_chgrp)
3186 : #endif
3187 : #if HAVE_LCHOWN
3188 : PHP_FE(lchown, arginfo_lchown)
3189 : #endif
3190 : #if HAVE_LCHOWN
3191 : PHP_FE(lchgrp, arginfo_lchgrp)
3192 : #endif
3193 : PHP_FE(chmod, arginfo_chmod)
3194 : #if HAVE_UTIME
3195 : PHP_FE(touch, arginfo_touch)
3196 : #endif
3197 : PHP_FE(clearstatcache, arginfo_clearstatcache)
3198 : PHP_FE(disk_total_space, arginfo_disk_total_space)
3199 : PHP_FE(disk_free_space, arginfo_disk_free_space)
3200 : PHP_FALIAS(diskfreespace, disk_free_space, arginfo_disk_free_space)
3201 :
3202 : /* functions from mail.c */
3203 : PHP_FE(mail, arginfo_mail)
3204 : PHP_FE(ezmlm_hash, arginfo_ezmlm_hash)
3205 :
3206 : /* functions from syslog.c */
3207 : #ifdef HAVE_SYSLOG_H
3208 : PHP_FE(openlog, arginfo_openlog)
3209 : PHP_FE(syslog, arginfo_syslog)
3210 : PHP_FE(closelog, arginfo_closelog)
3211 : PHP_DEP_FE(define_syslog_variables, arginfo_define_syslog_variables)
3212 : #endif
3213 :
3214 : /* functions from lcg.c */
3215 : PHP_FE(lcg_value, arginfo_lcg_value)
3216 :
3217 : /* functions from metaphone.c */
3218 : PHP_FE(metaphone, arginfo_metaphone)
3219 :
3220 : /* functions from output.c */
3221 : PHP_FE(ob_start, arginfo_ob_start)
3222 : PHP_FE(ob_flush, arginfo_ob_flush)
3223 : PHP_FE(ob_clean, arginfo_ob_clean)
3224 : PHP_FE(ob_end_flush, arginfo_ob_end_flush)
3225 : PHP_FE(ob_end_clean, arginfo_ob_end_clean)
3226 : PHP_FE(ob_get_flush, arginfo_ob_get_flush)
3227 : PHP_FE(ob_get_clean, arginfo_ob_get_clean)
3228 : PHP_FE(ob_get_length, arginfo_ob_get_length)
3229 : PHP_FE(ob_get_level, arginfo_ob_get_level)
3230 : PHP_FE(ob_get_status, arginfo_ob_get_status)
3231 : PHP_FE(ob_get_contents, arginfo_ob_get_contents)
3232 : PHP_FE(ob_implicit_flush, arginfo_ob_implicit_flush)
3233 : PHP_FE(ob_list_handlers, arginfo_ob_list_handlers)
3234 :
3235 : /* functions from array.c */
3236 : PHP_FE(ksort, arginfo_ksort)
3237 : PHP_FE(krsort, arginfo_krsort)
3238 : PHP_FE(natsort, arginfo_natsort)
3239 : PHP_FE(natcasesort, arginfo_natcasesort)
3240 : PHP_FE(asort, arginfo_asort)
3241 : PHP_FE(arsort, arginfo_arsort)
3242 : PHP_FE(sort, arginfo_sort)
3243 : PHP_FE(rsort, arginfo_rsort)
3244 : PHP_FE(usort, arginfo_usort)
3245 : PHP_FE(uasort, arginfo_uasort)
3246 : PHP_FE(uksort, arginfo_uksort)
3247 : PHP_FE(shuffle, arginfo_shuffle)
3248 : PHP_FE(array_walk, arginfo_array_walk)
3249 : PHP_FE(array_walk_recursive, arginfo_array_walk_recursive)
3250 : PHP_FE(count, arginfo_count)
3251 : PHP_FE(end, arginfo_end)
3252 : PHP_FE(prev, arginfo_prev)
3253 : PHP_FE(next, arginfo_next)
3254 : PHP_FE(reset, arginfo_reset)
3255 : PHP_FE(current, arginfo_current)
3256 : PHP_FE(key, arginfo_key)
3257 : PHP_FE(min, arginfo_min)
3258 : PHP_FE(max, arginfo_max)
3259 : PHP_FE(in_array, arginfo_in_array)
3260 : PHP_FE(array_search, arginfo_array_search)
3261 : PHP_FE(extract, arginfo_extract)
3262 : PHP_FE(compact, arginfo_compact)
3263 : PHP_FE(array_fill, arginfo_array_fill)
3264 : PHP_FE(array_fill_keys, arginfo_array_fill_keys)
3265 : PHP_FE(range, arginfo_range)
3266 : PHP_FE(array_multisort, arginfo_array_multisort)
3267 : PHP_FE(array_push, arginfo_array_push)
3268 : PHP_FE(array_pop, arginfo_array_pop)
3269 : PHP_FE(array_shift, arginfo_array_shift)
3270 : PHP_FE(array_unshift, arginfo_array_unshift)
3271 : PHP_FE(array_splice, arginfo_array_splice)
3272 : PHP_FE(array_slice, arginfo_array_slice)
3273 : PHP_FE(array_merge, arginfo_array_merge)
3274 : PHP_FE(array_merge_recursive, arginfo_array_merge_recursive)
3275 : PHP_FE(array_replace, arginfo_array_replace)
3276 : PHP_FE(array_replace_recursive, arginfo_array_replace_recursive)
3277 : PHP_FE(array_keys, arginfo_array_keys)
3278 : PHP_FE(array_values, arginfo_array_values)
3279 : PHP_FE(array_count_values, arginfo_array_count_values)
3280 : PHP_FE(array_reverse, arginfo_array_reverse)
3281 : PHP_FE(array_reduce, arginfo_array_reduce)
3282 : PHP_FE(array_pad, arginfo_array_pad)
3283 : PHP_FE(array_flip, arginfo_array_flip)
3284 : PHP_FE(array_change_key_case, arginfo_array_change_key_case)
3285 : PHP_FE(array_rand, arginfo_array_rand)
3286 : PHP_FE(array_unique, arginfo_array_unique)
3287 : PHP_FE(array_intersect, arginfo_array_intersect)
3288 : PHP_FE(array_intersect_key, arginfo_array_intersect_key)
3289 : PHP_FE(array_intersect_ukey, arginfo_array_intersect_ukey)
3290 : PHP_FE(array_uintersect, arginfo_array_uintersect)
3291 : PHP_FE(array_intersect_assoc, arginfo_array_intersect_assoc)
3292 : PHP_FE(array_uintersect_assoc, arginfo_array_uintersect_assoc)
3293 : PHP_FE(array_intersect_uassoc, arginfo_array_intersect_uassoc)
3294 : PHP_FE(array_uintersect_uassoc, arginfo_array_uintersect_uassoc)
3295 : PHP_FE(array_diff, arginfo_array_diff)
3296 : PHP_FE(array_diff_key, arginfo_array_diff_key)
3297 : PHP_FE(array_diff_ukey, arginfo_array_diff_ukey)
3298 : PHP_FE(array_udiff, arginfo_array_udiff)
3299 : PHP_FE(array_diff_assoc, arginfo_array_diff_assoc)
3300 : PHP_FE(array_udiff_assoc, arginfo_array_udiff_assoc)
3301 : PHP_FE(array_diff_uassoc, arginfo_array_diff_uassoc)
3302 : PHP_FE(array_udiff_uassoc, arginfo_array_udiff_uassoc)
3303 : PHP_FE(array_sum, arginfo_array_sum)
3304 : PHP_FE(array_product, arginfo_array_product)
3305 : PHP_FE(array_filter, arginfo_array_filter)
3306 : PHP_FE(array_map, arginfo_array_map)
3307 : PHP_FE(array_chunk, arginfo_array_chunk)
3308 : PHP_FE(array_combine, arginfo_array_combine)
3309 : PHP_FE(array_key_exists, arginfo_array_key_exists)
3310 :
3311 : /* aliases from array.c */
3312 : PHP_FALIAS(pos, current, arginfo_current)
3313 : PHP_FALIAS(sizeof, count, arginfo_count)
3314 : PHP_FALIAS(key_exists, array_key_exists, arginfo_array_key_exists)
3315 :
3316 : /* functions from assert.c */
3317 : PHP_FE(assert, arginfo_assert)
3318 : PHP_FE(assert_options, arginfo_assert_options)
3319 :
3320 : /* functions from versioning.c */
3321 : PHP_FE(version_compare, arginfo_version_compare)
3322 :
3323 : /* functions from ftok.c*/
3324 : #if HAVE_FTOK
3325 : PHP_FE(ftok, arginfo_ftok)
3326 : #endif
3327 :
3328 : PHP_FE(str_rot13, arginfo_str_rot13)
3329 : PHP_FE(stream_get_filters, arginfo_stream_get_filters)
3330 : PHP_FE(stream_filter_register, arginfo_stream_filter_register)
3331 : PHP_FE(stream_bucket_make_writeable, arginfo_stream_bucket_make_writeable)
3332 : PHP_FE(stream_bucket_prepend, arginfo_stream_bucket_prepend)
3333 : PHP_FE(stream_bucket_append, arginfo_stream_bucket_append)
3334 : PHP_FE(stream_bucket_new, arginfo_stream_bucket_new)
3335 :
3336 : PHP_FE(output_add_rewrite_var, arginfo_output_add_rewrite_var)
3337 : PHP_FE(output_reset_rewrite_vars, arginfo_output_reset_rewrite_vars)
3338 :
3339 : PHP_FE(sys_get_temp_dir, arginfo_sys_get_temp_dir)
3340 :
3341 : {NULL, NULL, NULL}
3342 : };
3343 : /* }}} */
3344 :
3345 : static PHP_INI_MH(OnUpdateSafeModeProtectedEnvVars) /* {{{ */
3346 17633 : {
3347 : char *protected_vars, *protected_var;
3348 : char *token_buf;
3349 17633 : int dummy = 1;
3350 :
3351 17633 : protected_vars = estrndup(new_value, new_value_length);
3352 17633 : zend_hash_clean(&BG(sm_protected_env_vars));
3353 :
3354 17633 : protected_var = php_strtok_r(protected_vars, ", ", &token_buf);
3355 52900 : while (protected_var) {
3356 17634 : zend_hash_update(&BG(sm_protected_env_vars), protected_var, strlen(protected_var), &dummy, sizeof(int), NULL);
3357 17634 : protected_var = php_strtok_r(NULL, ", ", &token_buf);
3358 : }
3359 17633 : efree(protected_vars);
3360 17633 : return SUCCESS;
3361 : }
3362 : /* }}} */
3363 :
3364 : static PHP_INI_MH(OnUpdateSafeModeAllowedEnvVars) /* {{{ */
3365 17633 : {
3366 17633 : if (BG(sm_allowed_env_vars)) {
3367 0 : free(BG(sm_allowed_env_vars));
3368 : }
3369 17633 : BG(sm_allowed_env_vars) = zend_strndup(new_value, new_value_length);
3370 17633 : return SUCCESS;
3371 : }
3372 : /* }}} */
3373 :
3374 : PHP_INI_BEGIN() /* {{{ */
3375 : PHP_INI_ENTRY_EX("safe_mode_protected_env_vars", SAFE_MODE_PROTECTED_ENV_VARS, PHP_INI_SYSTEM, OnUpdateSafeModeProtectedEnvVars, NULL)
3376 : PHP_INI_ENTRY_EX("safe_mode_allowed_env_vars", SAFE_MODE_ALLOWED_ENV_VARS, PHP_INI_SYSTEM, OnUpdateSafeModeAllowedEnvVars, NULL)
3377 : PHP_INI_END()
3378 : /* }}} */
3379 :
3380 : static const zend_module_dep standard_deps[] = { /* {{{ */
3381 : ZEND_MOD_OPTIONAL("session")
3382 : {NULL, NULL, NULL}
3383 : };
3384 : /* }}} */
3385 :
3386 : zend_module_entry basic_functions_module = { /* {{{ */
3387 : STANDARD_MODULE_HEADER_EX,
3388 : NULL,
3389 : standard_deps,
3390 : "standard", /* extension name */
3391 : basic_functions, /* function list */
3392 : PHP_MINIT(basic), /* process startup */
3393 : PHP_MSHUTDOWN(basic), /* process shutdown */
3394 : PHP_RINIT(basic), /* request startup */
3395 : PHP_RSHUTDOWN(basic), /* request shutdown */
3396 : PHP_MINFO(basic), /* extension info */
3397 : PHP_VERSION, /* extension version */
3398 : STANDARD_MODULE_PROPERTIES
3399 : };
3400 : /* }}} */
3401 :
3402 : #if defined(HAVE_PUTENV)
3403 : static void php_putenv_destructor(putenv_entry *pe) /* {{{ */
3404 1077 : {
3405 1077 : if (pe->previous_value) {
3406 : #if _MSC_VER >= 1300
3407 : /* VS.Net has a bug in putenv() when setting a variable that
3408 : * is already set; if the SetEnvironmentVariable() API call
3409 : * fails, the Crt will double free() a string.
3410 : * We try to avoid this by setting our own value first */
3411 : SetEnvironmentVariable(pe->key, "bugbug");
3412 : #endif
3413 53 : putenv(pe->previous_value);
3414 : # if defined(PHP_WIN32)
3415 : efree(pe->previous_value);
3416 : # endif
3417 : } else {
3418 : # if HAVE_UNSETENV
3419 1024 : unsetenv(pe->key);
3420 : # elif defined(PHP_WIN32)
3421 : SetEnvironmentVariable(pe->key, NULL);
3422 : # else
3423 : char **env;
3424 :
3425 : for (env = environ; env != NULL && *env != NULL; env++) {
3426 : if (!strncmp(*env, pe->key, pe->key_len) && (*env)[pe->key_len] == '=') { /* found it */
3427 : *env = "";
3428 : break;
3429 : }
3430 : }
3431 : # endif
3432 : }
3433 : #ifdef HAVE_TZSET
3434 : /* don't forget to reset the various libc globals that
3435 : * we might have changed by an earlier call to tzset(). */
3436 1077 : if (!strncmp(pe->key, "TZ", pe->key_len)) {
3437 40 : tzset();
3438 : }
3439 : #endif
3440 :
3441 1077 : efree(pe->putenv_string);
3442 1077 : efree(pe->key);
3443 1077 : }
3444 : /* }}} */
3445 : #endif
3446 :
3447 : static void basic_globals_ctor(php_basic_globals *basic_globals_p TSRMLS_DC) /* {{{ */
3448 17633 : {
3449 17633 : BG(rand_is_seeded) = 0;
3450 17633 : BG(mt_rand_is_seeded) = 0;
3451 17633 : BG(umask) = -1;
3452 17633 : BG(next) = NULL;
3453 17633 : BG(left) = -1;
3454 17633 : BG(user_tick_functions) = NULL;
3455 17633 : BG(user_filter_map) = NULL;
3456 17633 : zend_hash_init(&BG(sm_protected_env_vars), 5, NULL, NULL, 1);
3457 17633 : BG(sm_allowed_env_vars) = NULL;
3458 :
3459 17633 : memset(&BG(url_adapt_state_ex), 0, sizeof(BG(url_adapt_state_ex)));
3460 :
3461 : #if defined(_REENTRANT) && defined(HAVE_MBRLEN) && defined(HAVE_MBSTATE_T)
3462 : memset(&BG(mblen_state), 0, sizeof(BG(mblen_state)));
3463 : #endif
3464 :
3465 17633 : BG(incomplete_class) = incomplete_class_entry;
3466 17633 : BG(page_uid) = -1;
3467 17633 : BG(page_gid) = -1;
3468 17633 : }
3469 : /* }}} */
3470 :
3471 : static void basic_globals_dtor(php_basic_globals *basic_globals_p TSRMLS_DC) /* {{{ */
3472 17665 : {
3473 17665 : zend_hash_destroy(&BG(sm_protected_env_vars));
3474 17665 : if (BG(sm_allowed_env_vars)) {
3475 17665 : free(BG(sm_allowed_env_vars));
3476 : }
3477 17665 : if (BG(url_adapt_state_ex).tags) {
3478 17665 : zend_hash_destroy(BG(url_adapt_state_ex).tags);
3479 17665 : free(BG(url_adapt_state_ex).tags);
3480 : }
3481 17665 : }
3482 : /* }}} */
3483 :
3484 : #define PHP_DOUBLE_INFINITY_HIGH 0x7ff00000
3485 : #define PHP_DOUBLE_QUIET_NAN_HIGH 0xfff80000
3486 :
3487 : PHPAPI double php_get_nan(void) /* {{{ */
3488 17636 : {
3489 : #if HAVE_HUGE_VAL_NAN
3490 17636 : return HUGE_VAL + -HUGE_VAL;
3491 : #elif defined(__i386__) || defined(_X86_) || defined(ALPHA) || defined(_ALPHA) || defined(__alpha)
3492 : double val = 0.0;
3493 : ((php_uint32*)&val)[1] = PHP_DOUBLE_QUIET_NAN_HIGH;
3494 : ((php_uint32*)&val)[0] = 0;
3495 : return val;
3496 : #elif HAVE_ATOF_ACCEPTS_NAN
3497 : return atof("NAN");
3498 : #else
3499 : return 0.0/0.0;
3500 : #endif
3501 : }
3502 : /* }}} */
3503 :
3504 : PHPAPI double php_get_inf(void) /* {{{ */
3505 17639 : {
3506 : #if HAVE_HUGE_VAL_INF
3507 17639 : return HUGE_VAL;
3508 : #elif defined(__i386__) || defined(_X86_) || defined(ALPHA) || defined(_ALPHA) || defined(__alpha)
3509 : double val = 0.0;
3510 : ((php_uint32*)&val)[1] = PHP_DOUBLE_INFINITY_HIGH;
3511 : ((php_uint32*)&val)[0] = 0;
3512 : return val;
3513 : #elif HAVE_ATOF_ACCEPTS_INF
3514 : return atof("INF");
3515 : #else
3516 : return 1.0/0.0;
3517 : #endif
3518 : }
3519 : /* }}} */
3520 :
3521 : PHP_MINIT_FUNCTION(basic) /* {{{ */
3522 17633 : {
3523 : #ifdef ZTS
3524 : ts_allocate_id(&basic_globals_id, sizeof(php_basic_globals), (ts_allocate_ctor) basic_globals_ctor, (ts_allocate_dtor) basic_globals_dtor);
3525 : #ifdef PHP_WIN32
3526 : ts_allocate_id(&php_win32_core_globals_id, sizeof(php_win32_core_globals), (ts_allocate_ctor)php_win32_core_globals_ctor, (ts_allocate_dtor)php_win32_core_globals_dtor );
3527 : #endif
3528 : #else
3529 17633 : basic_globals_ctor(&basic_globals TSRMLS_CC);
3530 : #ifdef PHP_WIN32
3531 : php_win32_core_globals_ctor(&the_php_win32_core_globals TSRMLS_CC);
3532 : #endif
3533 : #endif
3534 :
3535 17633 : BG(incomplete_class) = incomplete_class_entry = php_create_incomplete_class(TSRMLS_C);
3536 :
3537 17633 : REGISTER_LONG_CONSTANT("CONNECTION_ABORTED", PHP_CONNECTION_ABORTED, CONST_CS | CONST_PERSISTENT);
3538 17633 : REGISTER_LONG_CONSTANT("CONNECTION_NORMAL", PHP_CONNECTION_NORMAL, CONST_CS | CONST_PERSISTENT);
3539 17633 : REGISTER_LONG_CONSTANT("CONNECTION_TIMEOUT", PHP_CONNECTION_TIMEOUT, CONST_CS | CONST_PERSISTENT);
3540 :
3541 17633 : REGISTER_LONG_CONSTANT("INI_USER", ZEND_INI_USER, CONST_CS | CONST_PERSISTENT);
3542 17633 : REGISTER_LONG_CONSTANT("INI_PERDIR", ZEND_INI_PERDIR, CONST_CS | CONST_PERSISTENT);
3543 17633 : REGISTER_LONG_CONSTANT("INI_SYSTEM", ZEND_INI_SYSTEM, CONST_CS | CONST_PERSISTENT);
3544 17633 : REGISTER_LONG_CONSTANT("INI_ALL", ZEND_INI_ALL, CONST_CS | CONST_PERSISTENT);
3545 :
3546 17633 : REGISTER_LONG_CONSTANT("INI_SCANNER_NORMAL", ZEND_INI_SCANNER_NORMAL, CONST_CS | CONST_PERSISTENT);
3547 17633 : REGISTER_LONG_CONSTANT("INI_SCANNER_RAW", ZEND_INI_SCANNER_RAW, CONST_CS | CONST_PERSISTENT);
3548 :
3549 17633 : REGISTER_LONG_CONSTANT("PHP_URL_SCHEME", PHP_URL_SCHEME, CONST_CS | CONST_PERSISTENT);
3550 17633 : REGISTER_LONG_CONSTANT("PHP_URL_HOST", PHP_URL_HOST, CONST_CS | CONST_PERSISTENT);
3551 17633 : REGISTER_LONG_CONSTANT("PHP_URL_PORT", PHP_URL_PORT, CONST_CS | CONST_PERSISTENT);
3552 17633 : REGISTER_LONG_CONSTANT("PHP_URL_USER", PHP_URL_USER, CONST_CS | CONST_PERSISTENT);
3553 17633 : REGISTER_LONG_CONSTANT("PHP_URL_PASS", PHP_URL_PASS, CONST_CS | CONST_PERSISTENT);
3554 17633 : REGISTER_LONG_CONSTANT("PHP_URL_PATH", PHP_URL_PATH, CONST_CS | CONST_PERSISTENT);
3555 17633 : REGISTER_LONG_CONSTANT("PHP_URL_QUERY", PHP_URL_QUERY, CONST_CS | CONST_PERSISTENT);
3556 17633 : REGISTER_LONG_CONSTANT("PHP_URL_FRAGMENT", PHP_URL_FRAGMENT, CONST_CS | CONST_PERSISTENT);
3557 :
3558 : #define REGISTER_MATH_CONSTANT(x) REGISTER_DOUBLE_CONSTANT(#x, x, CONST_CS | CONST_PERSISTENT)
3559 17633 : REGISTER_MATH_CONSTANT(M_E);
3560 17633 : REGISTER_MATH_CONSTANT(M_LOG2E);
3561 17633 : REGISTER_MATH_CONSTANT(M_LOG10E);
3562 17633 : REGISTER_MATH_CONSTANT(M_LN2);
3563 17633 : REGISTER_MATH_CONSTANT(M_LN10);
3564 17633 : REGISTER_MATH_CONSTANT(M_PI);
3565 17633 : REGISTER_MATH_CONSTANT(M_PI_2);
3566 17633 : REGISTER_MATH_CONSTANT(M_PI_4);
3567 17633 : REGISTER_MATH_CONSTANT(M_1_PI);
3568 17633 : REGISTER_MATH_CONSTANT(M_2_PI);
3569 17633 : REGISTER_MATH_CONSTANT(M_SQRTPI);
3570 17633 : REGISTER_MATH_CONSTANT(M_2_SQRTPI);
3571 17633 : REGISTER_MATH_CONSTANT(M_LNPI);
3572 17633 : REGISTER_MATH_CONSTANT(M_EULER);
3573 17633 : REGISTER_MATH_CONSTANT(M_SQRT2);
3574 17633 : REGISTER_MATH_CONSTANT(M_SQRT1_2);
3575 17633 : REGISTER_MATH_CONSTANT(M_SQRT3);
3576 17633 : REGISTER_DOUBLE_CONSTANT("INF", php_get_inf(), CONST_CS | CONST_PERSISTENT);
3577 17633 : REGISTER_DOUBLE_CONSTANT("NAN", php_get_nan(), CONST_CS | CONST_PERSISTENT);
3578 :
3579 17633 : REGISTER_LONG_CONSTANT("PHP_ROUND_HALF_UP", PHP_ROUND_HALF_UP, CONST_CS | CONST_PERSISTENT);
3580 17633 : REGISTER_LONG_CONSTANT("PHP_ROUND_HALF_DOWN", PHP_ROUND_HALF_DOWN, CONST_CS | CONST_PERSISTENT);
3581 17633 : REGISTER_LONG_CONSTANT("PHP_ROUND_HALF_EVEN", PHP_ROUND_HALF_EVEN, CONST_CS | CONST_PERSISTENT);
3582 17633 : REGISTER_LONG_CONSTANT("PHP_ROUND_HALF_ODD", PHP_ROUND_HALF_ODD, CONST_CS | CONST_PERSISTENT);
3583 :
3584 : #if ENABLE_TEST_CLASS
3585 : test_class_startup();
3586 : #endif
3587 :
3588 17633 : REGISTER_INI_ENTRIES();
3589 :
3590 17633 : register_phpinfo_constants(INIT_FUNC_ARGS_PASSTHRU);
3591 17633 : register_html_constants(INIT_FUNC_ARGS_PASSTHRU);
3592 17633 : register_string_constants(INIT_FUNC_ARGS_PASSTHRU);
3593 :
3594 17633 : PHP_MINIT(file)(INIT_FUNC_ARGS_PASSTHRU);
3595 17633 : PHP_MINIT(pack)(INIT_FUNC_ARGS_PASSTHRU);
3596 17633 : PHP_MINIT(browscap)(INIT_FUNC_ARGS_PASSTHRU);
3597 17633 : PHP_MINIT(standard_filters)(INIT_FUNC_ARGS_PASSTHRU);
3598 17633 : PHP_MINIT(user_filters)(INIT_FUNC_ARGS_PASSTHRU);
3599 :
3600 : #if defined(HAVE_LOCALECONV) && defined(ZTS)
3601 : PHP_MINIT(localeconv)(INIT_FUNC_ARGS_PASSTHRU);
3602 : #endif
3603 :
3604 : #if defined(HAVE_NL_LANGINFO)
3605 17633 : PHP_MINIT(nl_langinfo)(INIT_FUNC_ARGS_PASSTHRU);
3606 : #endif
3607 :
3608 : #if HAVE_CRYPT
3609 17633 : PHP_MINIT(crypt)(INIT_FUNC_ARGS_PASSTHRU);
3610 : #endif
3611 :
3612 17633 : PHP_MINIT(lcg)(INIT_FUNC_ARGS_PASSTHRU);
3613 :
3614 17633 : PHP_MINIT(dir)(INIT_FUNC_ARGS_PASSTHRU);
3615 : #ifdef HAVE_SYSLOG_H
3616 17633 : PHP_MINIT(syslog)(INIT_FUNC_ARGS_PASSTHRU);
3617 : #endif
3618 17633 : PHP_MINIT(array)(INIT_FUNC_ARGS_PASSTHRU);
3619 17633 : PHP_MINIT(assert)(INIT_FUNC_ARGS_PASSTHRU);
3620 17633 : PHP_MINIT(url_scanner_ex)(INIT_FUNC_ARGS_PASSTHRU);
3621 : #ifdef PHP_CAN_SUPPORT_PROC_OPEN
3622 17633 : PHP_MINIT(proc_open)(INIT_FUNC_ARGS_PASSTHRU);
3623 : #endif
3624 :
3625 17633 : PHP_MINIT(user_streams)(INIT_FUNC_ARGS_PASSTHRU);
3626 17633 : PHP_MINIT(imagetypes)(INIT_FUNC_ARGS_PASSTHRU);
3627 :
3628 17633 : php_register_url_stream_wrapper("php", &php_stream_php_wrapper TSRMLS_CC);
3629 17633 : php_register_url_stream_wrapper("file", &php_plain_files_wrapper TSRMLS_CC);
3630 17633 : php_register_url_stream_wrapper("glob", &php_glob_stream_wrapper TSRMLS_CC);
3631 17633 : php_register_url_stream_wrapper("data", &php_stream_rfc2397_wrapper TSRMLS_CC);
3632 : #ifndef PHP_CURL_URL_WRAPPERS
3633 : php_register_url_stream_wrapper("http", &php_stream_http_wrapper TSRMLS_CC);
3634 : php_register_url_stream_wrapper("ftp", &php_stream_ftp_wrapper TSRMLS_CC);
3635 : #endif
3636 :
3637 : #if defined(PHP_WIN32) || (HAVE_DNS_SEARCH_FUNC && !(defined(__BEOS__) || defined(NETWARE)))
3638 : # if defined(PHP_WIN32) || HAVE_FULL_DNS_FUNCS
3639 17633 : PHP_MINIT(dns)(INIT_FUNC_ARGS_PASSTHRU);
3640 : # endif
3641 : #endif
3642 :
3643 17633 : return SUCCESS;
3644 : }
3645 : /* }}} */
3646 :
3647 : PHP_MSHUTDOWN_FUNCTION(basic) /* {{{ */
3648 17665 : {
3649 : #ifdef HAVE_SYSLOG_H
3650 17665 : PHP_MSHUTDOWN(syslog)(SHUTDOWN_FUNC_ARGS_PASSTHRU);
3651 : #endif
3652 : #ifdef ZTS
3653 : ts_free_id(basic_globals_id);
3654 : #ifdef PHP_WIN32
3655 : ts_free_id(php_win32_core_globals_id);
3656 : #endif
3657 : #else
3658 17665 : basic_globals_dtor(&basic_globals TSRMLS_CC);
3659 : #ifdef PHP_WIN32
3660 : php_win32_core_globals_dtor(&the_php_win32_core_globals TSRMLS_CC);
3661 : #endif
3662 : #endif
3663 :
3664 17665 : php_unregister_url_stream_wrapper("php" TSRMLS_CC);
3665 : #ifndef PHP_CURL_URL_WRAPPERS
3666 : php_unregister_url_stream_wrapper("http" TSRMLS_CC);
3667 : php_unregister_url_stream_wrapper("ftp" TSRMLS_CC);
3668 : #endif
3669 :
3670 17665 : UNREGISTER_INI_ENTRIES();
3671 :
3672 17665 : PHP_MSHUTDOWN(browscap)(SHUTDOWN_FUNC_ARGS_PASSTHRU);
3673 17665 : PHP_MSHUTDOWN(array)(SHUTDOWN_FUNC_ARGS_PASSTHRU);
3674 17665 : PHP_MSHUTDOWN(assert)(SHUTDOWN_FUNC_ARGS_PASSTHRU);
3675 17665 : PHP_MSHUTDOWN(url_scanner_ex)(SHUTDOWN_FUNC_ARGS_PASSTHRU);
3676 17665 : PHP_MSHUTDOWN(file)(SHUTDOWN_FUNC_ARGS_PASSTHRU);
3677 17665 : PHP_MSHUTDOWN(standard_filters)(SHUTDOWN_FUNC_ARGS_PASSTHRU);
3678 : #if defined(HAVE_LOCALECONV) && defined(ZTS)
3679 : PHP_MSHUTDOWN(localeconv)(SHUTDOWN_FUNC_ARGS_PASSTHRU);
3680 : #endif
3681 : #if HAVE_CRYPT
3682 17665 : PHP_MSHUTDOWN(crypt)(SHUTDOWN_FUNC_ARGS_PASSTHRU);
3683 : #endif
3684 :
3685 17665 : return SUCCESS;
3686 : }
3687 : /* }}} */
3688 :
3689 : PHP_RINIT_FUNCTION(basic) /* {{{ */
3690 17619 : {
3691 17619 : memset(BG(strtok_table), 0, 256);
3692 17619 : BG(strtok_string) = NULL;
3693 17619 : BG(strtok_zval) = NULL;
3694 17619 : BG(strtok_last) = NULL;
3695 17619 : BG(locale_string) = NULL;
3696 17619 : BG(array_walk_fci) = empty_fcall_info;
3697 17619 : BG(array_walk_fci_cache) = empty_fcall_info_cache;
3698 17619 : BG(user_compare_fci) = empty_fcall_info;
3699 17619 : BG(user_compare_fci_cache) = empty_fcall_info_cache;
3700 17619 : BG(page_uid) = -1;
3701 17619 : BG(page_gid) = -1;
3702 17619 : BG(page_inode) = -1;
3703 17619 : BG(page_mtime) = -1;
3704 : #ifdef HAVE_PUTENV
3705 17619 : if (zend_hash_init(&BG(putenv_ht), 1, NULL, (void (*)(void *)) php_putenv_destructor, 0) == FAILURE) {
3706 0 : return FAILURE;
3707 : }
3708 : #endif
3709 17619 : BG(user_shutdown_function_names) = NULL;
3710 :
3711 17619 : PHP_RINIT(filestat)(INIT_FUNC_ARGS_PASSTHRU);
3712 : #ifdef HAVE_SYSLOG_H
3713 17619 : PHP_RINIT(syslog)(INIT_FUNC_ARGS_PASSTHRU);
3714 : #endif
3715 17619 : PHP_RINIT(dir)(INIT_FUNC_ARGS_PASSTHRU);
3716 17619 : PHP_RINIT(url_scanner_ex)(INIT_FUNC_ARGS_PASSTHRU);
3717 :
3718 : /* Reset magic_quotes_runtime */
3719 17619 : PG(magic_quotes_runtime) = INI_BOOL("magic_quotes_runtime");
3720 :
3721 : /* Setup default context */
3722 17619 : FG(default_context) = NULL;
3723 :
3724 : /* Default to global wrappers only */
3725 17619 : FG(stream_wrappers) = NULL;
3726 :
3727 : /* Default to global filters only */
3728 17619 : FG(stream_filters) = NULL;
3729 :
3730 17619 : return SUCCESS;
3731 : }
3732 : /* }}} */
3733 :
3734 : PHP_RSHUTDOWN_FUNCTION(basic) /* {{{ */
3735 17651 : {
3736 17651 : if (BG(strtok_zval)) {
3737 9 : zval_ptr_dtor(&BG(strtok_zval));
3738 : }
3739 17651 : BG(strtok_string) = NULL;
3740 17651 : BG(strtok_zval) = NULL;
3741 : #ifdef HAVE_PUTENV
3742 17651 : zend_hash_destroy(&BG(putenv_ht));
3743 : #endif
3744 :
3745 17651 : if (BG(umask) != -1) {
3746 6 : umask(BG(umask));
3747 : }
3748 :
3749 : /* Check if locale was changed and change it back
3750 : * to the value in startup environment */
3751 17651 : if (BG(locale_string) != NULL) {
3752 179 : setlocale(LC_ALL, "C");
3753 179 : setlocale(LC_CTYPE, "");
3754 : zend_update_current_locale();
3755 : }
3756 17651 : STR_FREE(BG(locale_string));
3757 17651 : BG(locale_string) = NULL;
3758 :
3759 : /* FG(stream_wrappers) and FG(stream_filters) are destroyed
3760 : * during php_request_shutdown() */
3761 :
3762 17651 : PHP_RSHUTDOWN(filestat)(SHUTDOWN_FUNC_ARGS_PASSTHRU);
3763 : #ifdef HAVE_SYSLOG_H
3764 : #ifdef PHP_WIN32
3765 : PHP_RSHUTDOWN(syslog)(SHUTDOWN_FUNC_ARGS_PASSTHRU);
3766 : #endif
3767 : #endif
3768 17651 : PHP_RSHUTDOWN(assert)(SHUTDOWN_FUNC_ARGS_PASSTHRU);
3769 17651 : PHP_RSHUTDOWN(url_scanner_ex)(SHUTDOWN_FUNC_ARGS_PASSTHRU);
3770 17651 : PHP_RSHUTDOWN(streams)(SHUTDOWN_FUNC_ARGS_PASSTHRU);
3771 : #ifdef PHP_WIN32
3772 : PHP_RSHUTDOWN(win32_core_globals)(SHUTDOWN_FUNC_ARGS_PASSTHRU);
3773 : #endif
3774 :
3775 17651 : if (BG(user_tick_functions)) {
3776 2 : zend_llist_destroy(BG(user_tick_functions));
3777 2 : efree(BG(user_tick_functions));
3778 2 : BG(user_tick_functions) = NULL;
3779 : }
3780 :
3781 17651 : PHP_RSHUTDOWN(user_filters)(SHUTDOWN_FUNC_ARGS_PASSTHRU);
3782 :
3783 17651 : BG(page_uid) = -1;
3784 17651 : BG(page_gid) = -1;
3785 17651 : return SUCCESS;
3786 : }
3787 : /* }}} */
3788 :
3789 : PHP_MINFO_FUNCTION(basic) /* {{{ */
3790 43 : {
3791 43 : php_info_print_table_start();
3792 43 : PHP_MINFO(dl)(ZEND_MODULE_INFO_FUNC_ARGS_PASSTHRU);
3793 43 : PHP_MINFO(mail)(ZEND_MODULE_INFO_FUNC_ARGS_PASSTHRU);
3794 43 : php_info_print_table_end();
3795 43 : PHP_MINFO(assert)(ZEND_MODULE_INFO_FUNC_ARGS_PASSTHRU);
3796 43 : }
3797 : /* }}} */
3798 :
3799 : /* {{{ proto mixed constant(string const_name)
3800 : Given the name of a constant this function will return the constant's associated value */
3801 : PHP_FUNCTION(constant)
3802 90 : {
3803 : char *const_name;
3804 : int const_name_len;
3805 :
3806 90 : if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "s", &const_name, &const_name_len) == FAILURE) {
3807 3 : return;
3808 : }
3809 :
3810 87 : if (!zend_get_constant_ex(const_name, const_name_len, return_value, NULL, 0 TSRMLS_CC)) {
3811 1 : php_error_docref(NULL TSRMLS_CC, E_WARNING, "Couldn't find constant %s", const_name);
3812 1 : RETURN_NULL();
3813 : }
3814 : }
3815 : /* }}} */
3816 :
3817 : #ifdef HAVE_INET_NTOP
3818 : /* {{{ proto string inet_ntop(string in_addr)
3819 : Converts a packed inet address to a human readable IP address string */
3820 : PHP_NAMED_FUNCTION(php_inet_ntop)
3821 20 : {
3822 : char *address;
3823 20 : int address_len, af = AF_INET;
3824 : char buffer[40];
3825 :
3826 20 : if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "s", &address, &address_len) == FAILURE) {
3827 1 : RETURN_FALSE;
3828 : }
3829 :
3830 : #ifdef HAVE_IPV6
3831 19 : if (address_len == 16) {
3832 9 : af = AF_INET6;
3833 : } else
3834 : #endif
3835 10 : if (address_len != 4) {
3836 4 : php_error_docref(NULL TSRMLS_CC, E_WARNING, "Invalid in_addr value");
3837 4 : RETURN_FALSE;
3838 : }
3839 :
3840 15 : if (!inet_ntop(af, address, buffer, sizeof(buffer))) {
3841 0 : php_error_docref(NULL TSRMLS_CC, E_WARNING, "An unknown error occured");
3842 0 : RETURN_FALSE;
3843 : }
3844 :
3845 15 : RETURN_STRING(buffer, 1);
3846 : }
3847 : /* }}} */
3848 : #endif /* HAVE_INET_NTOP */
3849 :
3850 : #ifdef HAVE_INET_PTON
3851 : /* {{{ proto string inet_pton(string ip_address)
3852 : Converts a human readable IP address to a packed binary string */
3853 : PHP_NAMED_FUNCTION(php_inet_pton)
3854 17 : {
3855 17 : int ret, af = AF_INET;
3856 : char *address;
3857 : int address_len;
3858 : char buffer[17];
3859 :
3860 17 : if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "s", &address, &address_len) == FAILURE) {
3861 1 : RETURN_FALSE;
3862 : }
3863 :
3864 16 : memset(buffer, 0, sizeof(buffer));
3865 :
3866 : #ifdef HAVE_IPV6
3867 16 : if (strchr(address, ':')) {
3868 8 : af = AF_INET6;
3869 : } else
3870 : #endif
3871 8 : if (!strchr(address, '.')) {
3872 4 : php_error_docref(NULL TSRMLS_CC, E_WARNING, "Unrecognized address %s", address);
3873 4 : RETURN_FALSE;
3874 : }
3875 :
3876 12 : ret = inet_pton(af, address, buffer);
3877 :
3878 12 : if (ret <= 0) {
3879 0 : php_error_docref(NULL TSRMLS_CC, E_WARNING, "Unrecognized address %s", address);
3880 0 : RETURN_FALSE;
3881 : }
3882 :
3883 12 : RETURN_STRINGL(buffer, af == AF_INET ? 4 : 16, 1);
3884 : }
3885 : /* }}} */
3886 : #endif /* HAVE_INET_PTON */
3887 :
3888 : /* {{{ proto int ip2long(string ip_address)
3889 : Converts a string containing an (IPv4) Internet Protocol dotted address into a proper address */
3890 : PHP_FUNCTION(ip2long)
3891 41 : {
3892 : char *addr;
3893 : int addr_len;
3894 : #ifdef HAVE_INET_PTON
3895 : struct in_addr ip;
3896 : #else
3897 : unsigned long int ip;
3898 : #endif
3899 :
3900 41 : if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "s", &addr, &addr_len) == FAILURE) {
3901 10 : return;
3902 : }
3903 :
3904 : #ifdef HAVE_INET_PTON
3905 31 : if (addr_len == 0 || inet_pton(AF_INET, addr, &ip) != 1) {
3906 22 : RETURN_FALSE;
3907 : }
3908 9 : RETURN_LONG(ntohl(ip.s_addr));
3909 : #else
3910 : if (addr_len == 0 || (ip = inet_addr(addr)) == INADDR_NONE) {
3911 : /* The only special case when we should return -1 ourselves,
3912 : * because inet_addr() considers it wrong. We return 0xFFFFFFFF and
3913 : * not -1 or ~0 because of 32/64bit issues. */
3914 : if (addr_len == sizeof("255.255.255.255") - 1 &&
3915 : !memcmp(addr, "255.255.255.255", sizeof("255.255.255.255") - 1)
3916 : ) {
3917 : RETURN_LONG(0xFFFFFFFF);
3918 : }
3919 : RETURN_FALSE;
3920 : }
3921 : RETURN_LONG(ntohl(ip));
3922 : #endif
3923 : }
3924 : /* }}} */
3925 :
3926 : /* {{{ proto string long2ip(int proper_address)
3927 : Converts an (IPv4) Internet network address into a string in Internet standard dotted format */
3928 : PHP_FUNCTION(long2ip)
3929 36 : {
3930 : /* "It's a long but it's not, PHP ints are signed */
3931 : char *ip;
3932 : int ip_len;
3933 : unsigned long n;
3934 : struct in_addr myaddr;
3935 : #ifdef HAVE_INET_PTON
3936 : char str[40];
3937 : #endif
3938 :
3939 36 : if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "s", &ip, &ip_len) == FAILURE) {
3940 10 : return;
3941 : }
3942 :
3943 26 : n = strtoul(ip, NULL, 0);
3944 :
3945 26 : myaddr.s_addr = htonl(n);
3946 : #ifdef HAVE_INET_PTON
3947 26 : if (inet_ntop(AF_INET, &myaddr, str, sizeof(str))) {
3948 26 : RETURN_STRING(str, 1);
3949 : } else {
3950 0 : RETURN_FALSE;
3951 : }
3952 : #else
3953 : RETURN_STRING(inet_ntoa(myaddr), 1);
3954 : #endif
3955 : }
3956 : /* }}} */
3957 :
3958 : /********************
3959 : * System Functions *
3960 : ********************/
3961 :
3962 : /* {{{ proto string getenv(string varname)
3963 : Get the value of an environment variable */
3964 : PHP_FUNCTION(getenv)
3965 26512 : {
3966 : char *ptr, *str;
3967 : int str_len;
3968 :
3969 26512 : if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "s", &str, &str_len) == FAILURE) {
3970 0 : RETURN_FALSE;
3971 : }
3972 :
3973 : /* SAPI method returns an emalloc()'d string */
3974 26512 : ptr = sapi_getenv(str, str_len TSRMLS_CC);
3975 26512 : if (ptr) {
3976 0 : RETURN_STRING(ptr, 0);
3977 : }
3978 : #ifdef PHP_WIN32
3979 : {
3980 : char dummybuf;
3981 : int size;
3982 :
3983 : SetLastError(0);
3984 : /*If the given bugger is not large enough to hold the data, the return value is
3985 : the buffer size, in characters, required to hold the string and its terminating
3986 : null character. We use this return value to alloc the final buffer. */
3987 : size = GetEnvironmentVariableA(str, &dummybuf, 0);
3988 : if (GetLastError() == ERROR_ENVVAR_NOT_FOUND) {
3989 : /* The environment variable doesn't exist. */
3990 : RETURN_FALSE;
3991 : }
3992 :
3993 : if (size == 0) {
3994 : /* env exists, but it is empty */
3995 : RETURN_EMPTY_STRING();
3996 : }
3997 :
3998 : ptr = emalloc(size);
3999 : size = GetEnvironmentVariableA(str, ptr, size);
4000 : RETURN_STRING(ptr, 0);
4001 : }
4002 : #else
4003 : /* system method returns a const */
4004 26512 : ptr = getenv(str);
4005 26512 : if (ptr) {
4006 13855 : RETURN_STRING(ptr, 1);
4007 : }
4008 : #endif
4009 12657 : RETURN_FALSE;
4010 : }
4011 : /* }}} */
4012 :
4013 : #ifdef HAVE_PUTENV
4014 : /* {{{ proto bool putenv(string setting)
4015 : Set the value of an environment variable */
4016 : PHP_FUNCTION(putenv)
4017 1089 : {
4018 : char *setting;
4019 : int setting_len;
4020 :
4021 1089 : if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "s", &setting, &setting_len) == FAILURE) {
4022 0 : return;
4023 : }
4024 :
4025 1089 : if (setting_len) {
4026 : char *p, **env;
4027 : putenv_entry pe;
4028 : #ifdef PHP_WIN32
4029 : char *value = NULL;
4030 : int equals = 0;
4031 : int error_code;
4032 : #endif
4033 :
4034 1089 : pe.putenv_string = estrndup(setting, setting_len);
4035 1089 : pe.key = estrndup(setting, setting_len);
4036 1089 : if ((p = strchr(pe.key, '='))) { /* nullify the '=' if there is one */
4037 999 : *p = '\0';
4038 : #ifdef PHP_WIN32
4039 : equals = 1;
4040 : #endif
4041 : }
4042 :
4043 1089 : pe.key_len = strlen(pe.key);
4044 : #ifdef PHP_WIN32
4045 : if (equals) {
4046 : if (pe.key_len < setting_len - 2) {
4047 : value = p + 1;
4048 : } else {
4049 : /* empty string*/
4050 : value = p;
4051 : }
4052 : }
4053 : #endif
4054 :
4055 1089 : if (PG(safe_mode)) {
4056 : /* Check the protected list */
4057 6 : if (zend_hash_exists(&BG(sm_protected_env_vars), pe.key, pe.key_len)) {
4058 2 : php_error_docref(NULL TSRMLS_CC, E_WARNING, "Safe Mode warning: Cannot override protected environment variable '%s'", pe.key);
4059 2 : efree(pe.putenv_string);
4060 2 : efree(pe.key);
4061 2 : RETURN_FALSE;
4062 : }
4063 :
4064 : /* Check the allowed list */
4065 4 : if (BG(sm_allowed_env_vars) && *BG(sm_allowed_env_vars)) {
4066 4 : char *allowed_env_vars = estrdup(BG(sm_allowed_env_vars));
4067 4 : char *strtok_buf = NULL;
4068 4 : char *allowed_prefix = php_strtok_r(allowed_env_vars, ", ", &strtok_buf);
4069 4 : zend_bool allowed = 0;
4070 :
4071 10 : while (allowed_prefix) {
4072 4 : if (!strncmp(allowed_prefix, pe.key, strlen(allowed_prefix))) {
4073 2 : allowed = 1;
4074 2 : break;
4075 : }
4076 2 : allowed_prefix = php_strtok_r(NULL, ", ", &strtok_buf);
4077 : }
4078 4 : efree(allowed_env_vars);
4079 4 : if (!allowed) {
4080 2 : php_error_docref(NULL TSRMLS_CC, E_WARNING, "Safe Mode warning: Cannot set environment variable '%s' - it's not in the allowed list", pe.key);
4081 2 : efree(pe.putenv_string);
4082 2 : efree(pe.key);
4083 2 : RETURN_FALSE;
4084 : }
4085 : }
4086 : }
4087 :
4088 1085 : zend_hash_del(&BG(putenv_ht), pe.key, pe.key_len+1);
4089 :
4090 : /* find previous value */
4091 1085 : pe.previous_value = NULL;
4092 49530 : for (env = environ; env != NULL && *env != NULL; env++) {
4093 48498 : if (!strncmp(*env, pe.key, pe.key_len) && (*env)[pe.key_len] == '=') { /* found it */
4094 : #if defined(PHP_WIN32)
4095 : /* must copy previous value because MSVCRT's putenv can free the string without notice */
4096 : pe.previous_value = estrdup(*env);
4097 : #else
4098 53 : pe.previous_value = *env;
4099 : #endif
4100 53 : break;
4101 : }
4102 : }
4103 :
4104 : #if HAVE_UNSETENV
4105 1085 : if (!p) { /* no '=' means we want to unset it */
4106 90 : unsetenv(pe.putenv_string);
4107 : }
4108 1085 : if (!p || putenv(pe.putenv_string) == 0) { /* success */
4109 : #else
4110 : # ifndef PHP_WIN32
4111 : if (putenv(pe.putenv_string) == 0) { /* success */
4112 : # else
4113 : error_code = SetEnvironmentVariable(pe.key, value);
4114 : # if _MSC_VER < 1500
4115 : /* Yet another VC6 bug, unset may return env not found */
4116 : if (error_code != 0 ||
4117 : (error_code == 0 && GetLastError() == ERROR_ENVVAR_NOT_FOUND)) {
4118 : # else
4119 : if (error_code != 0) { /* success */
4120 : # endif
4121 : # endif
4122 : #endif
4123 1085 : zend_hash_add(&BG(putenv_ht), pe.key, pe.key_len + 1, (void **) &pe, sizeof(putenv_entry), NULL);
4124 : #ifdef HAVE_TZSET
4125 1085 : if (!strncmp(pe.key, "TZ", pe.key_len)) {
4126 40 : tzset();
4127 : }
4128 : #endif
4129 1085 : RETURN_TRUE;
4130 : } else {
4131 0 : efree(pe.putenv_string);
4132 0 : efree(pe.key);
4133 0 : RETURN_FALSE;
4134 : }
4135 : }
4136 :
4137 0 : php_error_docref(NULL TSRMLS_CC, E_WARNING, "Invalid parameter syntax");
4138 0 : RETURN_FALSE;
4139 : }
4140 : /* }}} */
4141 : #endif
4142 :
4143 : /* {{{ free_argv()
4144 : Free the memory allocated to an argv array. */
4145 : static void free_argv(char **argv, int argc)
4146 8 : {
4147 : int i;
4148 :
4149 8 : if (argv) {
4150 60 : for (i = 0; i < argc; i++) {
4151 52 : if (argv[i]) {
4152 52 : efree(argv[i]);
4153 : }
4154 : }
4155 8 : efree(argv);
4156 : }
4157 8 : }
4158 : /* }}} */
4159 :
4160 : /* {{{ free_longopts()
4161 : Free the memory allocated to an longopt array. */
4162 : static void free_longopts(opt_struct *longopts)
4163 8 : {
4164 : opt_struct *p;
4165 :
4166 8 : if (longopts) {
4167 47 : for (p = longopts; p && p->opt_char != '-'; p++) {
4168 39 : if (p->opt_name != NULL) {
4169 10 : efree((char *)(p->opt_name));
4170 : }
4171 : }
4172 : }
4173 8 : }
4174 : /* }}} */
4175 :
4176 : /* {{{ parse_opts()
4177 : Convert the typical getopt input characters to the php_getopt struct array */
4178 : static int parse_opts(char * opts, opt_struct ** result)
4179 8 : {
4180 8 : opt_struct * paras = NULL;
4181 8 : unsigned int i, count = 0;
4182 :
4183 45 : for (i = 0; i < strlen(opts); i++) {
4184 37 : if ((opts[i] >= 48 && opts[i] <= 57) ||
4185 : (opts[i] >= 65 && opts[i] <= 90) ||
4186 : (opts[i] >= 97 && opts[i] <= 122)
4187 : ) {
4188 29 : count++;
4189 : }
4190 : }
4191 :
4192 8 : paras = safe_emalloc(sizeof(opt_struct), count, 0);
4193 8 : memset(paras, 0, sizeof(opt_struct) * count);
4194 8 : *result = paras;
4195 45 : while ( (*opts >= 48 && *opts <= 57) || /* 0 - 9 */
4196 : (*opts >= 65 && *opts <= 90) || /* A - Z */
4197 : (*opts >= 97 && *opts <= 122) /* a - z */
4198 : ) {
4199 29 : paras->opt_char = *opts;
4200 29 : paras->need_param = (*(++opts) == ':') ? 1 : 0;
4201 29 : paras->opt_name = NULL;
4202 29 : if (paras->need_param == 1) {
4203 7 : opts++;
4204 7 : if (*opts == ':') {
4205 1 : paras->need_param++;
4206 1 : opts++;
4207 : }
4208 : }
4209 29 : paras++;
4210 : }
4211 8 : return count;
4212 : }
4213 : /* }}} */
4214 :
4215 : /* {{{ proto array getopt(string options [, array longopts])
4216 : Get options from the command line argument list */
4217 : PHP_FUNCTION(getopt)
4218 9 : {
4219 9 : char *options = NULL, **argv = NULL;
4220 9 : char opt[2] = { '\0' };
4221 : char *optname;
4222 9 : int argc = 0, options_len = 0, len, o;
4223 9 : char *php_optarg = NULL;
4224 9 : int php_optind = 1;
4225 9 : zval *val, **args = NULL, *p_longopts = NULL;
4226 9 : int optname_len = 0;
4227 : opt_struct *opts, *orig_opts;
4228 :
4229 9 : if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "s|a", &options, &options_len, &p_longopts) == FAILURE) {
4230 0 : RETURN_FALSE;
4231 : }
4232 :
4233 : /* Get argv from the global symbol table. We calculate argc ourselves
4234 : * in order to be on the safe side, even though it is also available
4235 : * from the symbol table. */
4236 9 : if ((zend_hash_find(HASH_OF(PG(http_globals)[TRACK_VARS_SERVER]), "argv", sizeof("argv"), (void **) &args) != FAILURE ||
4237 : zend_hash_find(&EG(symbol_table), "argv", sizeof("argv"), (void **) &args) != FAILURE) && Z_TYPE_PP(args) == IS_ARRAY
4238 : ) {
4239 8 : int pos = 0;
4240 : zval **entry;
4241 :
4242 8 : argc = zend_hash_num_elements(Z_ARRVAL_PP(args));
4243 :
4244 : /* Attempt to allocate enough memory to hold all of the arguments
4245 : * and a trailing NULL */
4246 8 : argv = (char **) safe_emalloc(sizeof(char *), (argc + 1), 0);
4247 :
4248 : /* Reset the array indexes. */
4249 8 : zend_hash_internal_pointer_reset(Z_ARRVAL_PP(args));
4250 :
4251 : /* Iterate over the hash to construct the argv array. */
4252 68 : while (zend_hash_get_current_data(Z_ARRVAL_PP(args), (void **)&entry) == SUCCESS) {
4253 52 : zval arg, *arg_ptr = *entry;
4254 :
4255 52 : if (Z_TYPE_PP(entry) != IS_STRING) {
4256 5 : arg = **entry;
4257 5 : zval_copy_ctor(&arg);
4258 5 : convert_to_string(&arg);
4259 5 : arg_ptr = &arg;
4260 : }
4261 :
4262 52 : argv[pos++] = estrdup(Z_STRVAL_P(arg_ptr));
4263 :
4264 52 : if (arg_ptr != *entry) {
4265 5 : zval_dtor(&arg);
4266 : }
4267 :
4268 52 : zend_hash_move_forward(Z_ARRVAL_PP(args));
4269 : }
4270 :
4271 : /* The C Standard requires argv[argc] to be NULL - this might
4272 : * keep some getopt implementations happy. */
4273 8 : argv[argc] = NULL;
4274 : } else {
4275 : /* Return false if we can't find argv. */
4276 1 : RETURN_FALSE;
4277 : }
4278 :
4279 8 : len = parse_opts(options, &opts);
4280 :
4281 8 : if (p_longopts) {
4282 : int count;
4283 : zval **entry;
4284 :
4285 4 : count = zend_hash_num_elements(Z_ARRVAL_P(p_longopts));
4286 :
4287 : /* the first <len> slots are filled by the one short ops
4288 : * we now extend our array and jump to the new added structs */
4289 4 : opts = (opt_struct *) erealloc(opts, sizeof(opt_struct) * (len + count + 1));
4290 4 : orig_opts = opts;
4291 4 : opts += len;
4292 :
4293 4 : memset(opts, 0, count * sizeof(opt_struct));
4294 :
4295 4 : if (!opts) {
4296 0 : RETURN_FALSE;
4297 : }
4298 :
4299 : /* Reset the array indexes. */
4300 4 : zend_hash_internal_pointer_reset(Z_ARRVAL_P(p_longopts));
4301 :
4302 : /* Iterate over the hash to construct the argv array. */
4303 18 : while (zend_hash_get_current_data(Z_ARRVAL_P(p_longopts), (void **)&entry) == SUCCESS) {
4304 10 : zval arg, *arg_ptr = *entry;
4305 :
4306 10 : if (Z_TYPE_PP(entry) != IS_STRING) {
4307 5 : arg = **entry;
4308 5 : zval_copy_ctor(&arg);
4309 5 : convert_to_string(&arg);
4310 5 : arg_ptr = &arg;
4311 : }
4312 :
4313 10 : opts->need_param = 0;
4314 10 : opts->opt_name = estrdup(Z_STRVAL_P(arg_ptr));
4315 10 : len = strlen(opts->opt_name);
4316 10 : if ((len > 0) && (opts->opt_name[len - 1] == ':')) {
4317 3 : opts->need_param++;
4318 3 : opts->opt_name[len - 1] = '\0';
4319 3 : if ((len > 1) && (opts->opt_name[len - 2] == ':')) {
4320 1 : opts->need_param++;
4321 1 : opts->opt_name[len - 2] = '\0';
4322 : }
4323 : }
4324 10 : opts->opt_char = 0;
4325 10 : opts++;
4326 :
4327 10 : if (arg_ptr != *entry) {
4328 5 : zval_dtor(&arg);
4329 : }
4330 :
4331 10 : zend_hash_move_forward(Z_ARRVAL_P(p_longopts));
4332 : }
4333 : } else {
4334 4 : opts = (opt_struct*) erealloc(opts, sizeof(opt_struct) * (len + 1));
4335 4 : orig_opts = opts;
4336 4 : opts += len;
4337 : }
4338 :
4339 : /* php_getopt want to identify the last param */
4340 8 : opts->opt_char = '-';
4341 8 : opts->need_param = 0;
4342 8 : opts->opt_name = NULL;
4343 :
4344 : /* Initialize the return value as an array. */
4345 8 : array_init(return_value);
4346 :
4347 : /* after our pointer arithmetic jump back to the first element */
4348 8 : opts = orig_opts;
4349 :
4350 60 : while ((o = php_getopt(argc, argv, opts, &php_optarg, &php_optind, 0, 1)) != -1) {
4351 : /* Skip unknown arguments. */
4352 44 : if (o == '?') {
4353 1 : continue;
4354 : }
4355 :
4356 : /* Prepare the option character and the argument string. */
4357 43 : if (o == 0) {
4358 11 : optname = opts[php_optidx].opt_name;
4359 : } else {
4360 32 : if (o == 1) {
4361 0 : o = '-';
4362 : }
4363 32 : opt[0] = o;
4364 32 : optname = opt;
4365 : }
4366 :
4367 43 : MAKE_STD_ZVAL(val);
4368 43 : if (php_optarg != NULL) {
4369 : /* keep the arg as binary, since the encoding is not known */
4370 13 : ZVAL_STRING(val, php_optarg, 1);
4371 : } else {
4372 30 : ZVAL_FALSE(val);
4373 : }
4374 :
4375 : /* Add this option / argument pair to the result hash. */
4376 43 : optname_len = strlen(optname);
4377 57 : if (!(optname_len > 1 && optname[0] == '0') && is_numeric_string(optname, optname_len, NULL, NULL, 0) == IS_LONG) {
4378 : /* numeric string */
4379 14 : int optname_int = atoi(optname);
4380 14 : if (zend_hash_index_find(HASH_OF(return_value), optname_int, (void **)&args) != FAILURE) {
4381 8 : if (Z_TYPE_PP(args) != IS_ARRAY) {
4382 3 : convert_to_array_ex(args);
4383 : }
4384 8 : zend_hash_next_index_insert(HASH_OF(*args), (void *)&val, sizeof(zval *), NULL);
4385 : } else {
4386 6 : zend_hash_index_update(HASH_OF(return_value), optname_int, &val, sizeof(zval *), NULL);
4387 : }
4388 : } else {
4389 : /* other strings */
4390 29 : if (zend_hash_find(HASH_OF(return_value), optname, strlen(optname)+1, (void **)&args) != FAILURE) {
4391 15 : if (Z_TYPE_PP(args) != IS_ARRAY) {
4392 6 : convert_to_array_ex(args);
4393 : }
4394 15 : zend_hash_next_index_insert(HASH_OF(*args), (void *)&val, sizeof(zval *), NULL);
4395 : } else {
4396 14 : zend_hash_add(HASH_OF(return_value), optname, strlen(optname)+1, (void *)&val, sizeof(zval *), NULL);
4397 : }
4398 : }
4399 :
4400 43 : php_optarg = NULL;
4401 : }
4402 :
4403 8 : free_longopts(orig_opts);
4404 8 : efree(orig_opts);
4405 8 : free_argv(argv, argc);
4406 : }
4407 : /* }}} */
4408 :
4409 : /* {{{ proto void flush(void)
4410 : Flush the output buffer */
4411 : PHP_FUNCTION(flush)
4412 11258 : {
4413 11258 : sapi_flush(TSRMLS_C);
4414 11258 : }
4415 : /* }}} */
4416 :
4417 : /* {{{ proto void sleep(int seconds)
4418 : Delay for a given number of seconds */
4419 : PHP_FUNCTION(sleep)
4420 47 : {
4421 : long num;
4422 :
4423 47 : if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "l", &num) == FAILURE) {
4424 2 : RETURN_FALSE;
4425 : }
4426 45 : if (num < 0) {
4427 1 : php_error_docref(NULL TSRMLS_CC, E_WARNING, "Number of seconds must be greater than or equal to 0");
4428 1 : RETURN_FALSE;
4429 : }
4430 : #ifdef PHP_SLEEP_NON_VOID
4431 44 : RETURN_LONG(php_sleep(num));
4432 : #else
4433 : php_sleep(num);
4434 : #endif
4435 :
4436 : }
4437 : /* }}} */
4438 :
4439 : /* {{{ proto void usleep(int micro_seconds)
4440 : Delay for a given number of micro seconds */
4441 : PHP_FUNCTION(usleep)
4442 1090 : {
4443 : #if HAVE_USLEEP
4444 : long num;
4445 :
4446 1090 : if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "l", &num) == FAILURE) {
4447 2 : return;
4448 : }
4449 1088 : if (num < 0) {
4450 1 : php_error_docref(NULL TSRMLS_CC, E_WARNING, "Number of microseconds must be greater than or equal to 0");
4451 1 : RETURN_FALSE;
4452 : }
4453 1087 : usleep(num);
4454 : #endif
4455 : }
4456 : /* }}} */
4457 :
4458 : #if HAVE_NANOSLEEP
4459 : /* {{{ proto mixed time_nanosleep(long seconds, long nanoseconds)
4460 : Delay for a number of seconds and nano seconds */
4461 : PHP_FUNCTION(time_nanosleep)
4462 6 : {
4463 : long tv_sec, tv_nsec;
4464 : struct timespec php_req, php_rem;
4465 :
4466 6 : if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "ll", &tv_sec, &tv_nsec) == FAILURE) {
4467 2 : return;
4468 : }
4469 :
4470 4 : php_req.tv_sec = (time_t) tv_sec;
4471 4 : php_req.tv_nsec = tv_nsec;
4472 4 : if (!nanosleep(&php_req, &php_rem)) {
4473 1 : RETURN_TRUE;
4474 3 : } else if (errno == EINTR) {
4475 0 : array_init(return_value);
4476 0 : add_assoc_long_ex(return_value, "seconds", sizeof("seconds"), php_rem.tv_sec);
4477 0 : add_assoc_long_ex(return_value, "nanoseconds", sizeof("nanoseconds"), php_rem.tv_nsec);
4478 0 : return;
4479 3 : } else if (errno == EINVAL) {
4480 3 : php_error_docref(NULL TSRMLS_CC, E_WARNING, "nanoseconds was not in the range 0 to 999 999 999 or seconds was negative");
4481 : }
4482 :
4483 3 : RETURN_FALSE;
4484 : }
4485 : /* }}} */
4486 :
4487 : /* {{{ proto mixed time_sleep_until(float timestamp)
4488 : Make the script sleep until the specified time */
4489 : PHP_FUNCTION(time_sleep_until)
4490 4 : {
4491 : double d_ts, c_ts;
4492 : struct timeval tm;
4493 : struct timespec php_req, php_rem;
4494 :
4495 4 : if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "d", &d_ts) == FAILURE) {
4496 2 : return;
4497 : }
4498 :
4499 2 : if (gettimeofday((struct timeval *) &tm, NULL) != 0) {
4500 0 : RETURN_FALSE;
4501 : }
4502 :
4503 2 : c_ts = (double)(d_ts - tm.tv_sec - tm.tv_usec / 1000000.00);
4504 2 : if (c_ts < 0) {
4505 1 : php_error_docref(NULL TSRMLS_CC, E_WARNING, "Sleep until to time is less than current time");
4506 1 : RETURN_FALSE;
4507 : }
4508 :
4509 1 : php_req.tv_sec = (time_t) c_ts;
4510 1 : if (php_req.tv_sec > c_ts) { /* rounding up occurred */
4511 0 : php_req.tv_sec--;
4512 : }
4513 : /* 1sec = 1000000000 nanoseconds */
4514 1 : php_req.tv_nsec = (long) ((c_ts - php_req.tv_sec) * 1000000000.00);
4515 :
4516 2 : while (nanosleep(&php_req, &php_rem)) {
4517 0 : if (errno == EINTR) {
4518 0 : php_req.tv_sec = php_rem.tv_sec;
4519 0 : php_req.tv_nsec = php_rem.tv_nsec;
4520 : } else {
4521 0 : RETURN_FALSE;
4522 : }
4523 : }
4524 :
4525 1 : RETURN_TRUE;
4526 : }
4527 : /* }}} */
4528 : #endif
4529 :
4530 : /* {{{ proto string get_current_user(void)
4531 : Get the name of the owner of the current PHP script */
4532 : PHP_FUNCTION(get_current_user)
4533 3 : {
4534 3 : if (zend_parse_parameters_none() == FAILURE) {
4535 1 : return;
4536 : }
4537 :
4538 2 : RETURN_STRING(php_get_current_user(), 1);
4539 : }
4540 : /* }}} */
4541 :
4542 : /* {{{ add_config_entry_cb
4543 : */
4544 : static int add_config_entry_cb(zval *entry TSRMLS_DC, int num_args, va_list args, zend_hash_key *hash_key)
4545 0 : {
4546 0 : zval *retval = (zval *)va_arg(args, zval*);
4547 : zval *tmp;
4548 :
4549 0 : if (Z_TYPE_P(entry) == IS_STRING) {
4550 0 : if (hash_key->nKeyLength > 0) {
4551 0 : add_assoc_stringl_ex(retval, hash_key->arKey, hash_key->nKeyLength, Z_STRVAL_P(entry), Z_STRLEN_P(entry), 1);
4552 : } else {
4553 0 : add_index_stringl(retval, hash_key->h, Z_STRVAL_P(entry), Z_STRLEN_P(entry), 1);
4554 : }
4555 0 : } else if (Z_TYPE_P(entry) == IS_ARRAY) {
4556 0 : MAKE_STD_ZVAL(tmp);
4557 0 : array_init(tmp);
4558 0 : zend_hash_apply_with_arguments(Z_ARRVAL_P(entry) TSRMLS_CC, (apply_func_args_t) add_config_entry_cb, 1, tmp);
4559 0 : add_assoc_zval_ex(retval, hash_key->arKey, hash_key->nKeyLength, tmp);
4560 : }
4561 0 : return 0;
4562 : }
4563 : /* }}} */
4564 :
4565 : /* {{{ proto mixed get_cfg_var(string option_name)
4566 : Get the value of a PHP configuration option */
4567 : PHP_FUNCTION(get_cfg_var)
4568 39 : {
4569 : char *varname;
4570 : int varname_len;
4571 : zval *retval;
4572 :
4573 39 : if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "s", &varname, &varname_len) == FAILURE) {
4574 7 : return;
4575 : }
4576 :
4577 32 : retval = cfg_get_entry(varname, varname_len + 1);
4578 :
4579 32 : if (retval) {
4580 9 : if (Z_TYPE_P(retval) == IS_ARRAY) {
4581 0 : array_init(return_value);
4582 0 : zend_hash_apply_with_arguments(Z_ARRVAL_P(retval) TSRMLS_CC, (apply_func_args_t) add_config_entry_cb, 1, return_value);
4583 0 : return;
4584 : } else {
4585 9 : RETURN_STRING(Z_STRVAL_P(retval), 1);
4586 : }
4587 : } else {
4588 23 : RETURN_FALSE;
4589 : }
4590 : }
4591 : /* }}} */
4592 :
4593 : /* {{{ proto bool set_magic_quotes_runtime(int new_setting)
4594 : Set the current active configuration setting of magic_quotes_runtime and return previous */
4595 : PHP_FUNCTION(set_magic_quotes_runtime)
4596 36 : {
4597 : zend_bool new_setting;
4598 :
4599 36 : if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "b", &new_setting) == FAILURE) {
4600 5 : return;
4601 : }
4602 :
4603 31 : PG(magic_quotes_runtime) = new_setting;
4604 31 : RETURN_TRUE;
4605 : }
4606 : /* }}} */
4607 :
4608 : /* {{{ proto int get_magic_quotes_runtime(void)
4609 : Get the current active configuration setting of magic_quotes_runtime */
4610 : PHP_FUNCTION(get_magic_quotes_runtime)
4611 39 : {
4612 39 : RETURN_LONG(PG(magic_quotes_runtime));
4613 : }
4614 : /* }}} */
4615 :
4616 : /* {{{ proto int get_magic_quotes_gpc(void)
4617 : Get the current active configuration setting of magic_quotes_gpc */
4618 : PHP_FUNCTION(get_magic_quotes_gpc)
4619 4 : {
4620 4 : RETURN_LONG(PG(magic_quotes_gpc));
4621 : }
4622 : /* }}} */
4623 :
4624 : /*
4625 : 1st arg = error message
4626 : 2nd arg = error option
4627 : 3rd arg = optional parameters (email address or tcp address)
4628 : 4th arg = used for additional headers if email
4629 :
4630 : error options:
4631 : 0 = send to php_error_log (uses syslog or file depending on ini setting)
4632 : 1 = send via email to 3rd parameter 4th option = additional headers
4633 : 2 = send via tcp/ip to 3rd parameter (name or ip:port)
4634 : 3 = save to file in 3rd parameter
4635 : 4 = send to SAPI logger directly
4636 : */
4637 :
4638 : /* {{{ proto bool error_log(string message [, int message_type [, string destination [, string extra_headers]]])
4639 : Send an error message somewhere */
4640 : PHP_FUNCTION(error_log)
4641 4 : {
4642 4 : char *message, *opt = NULL, *headers = NULL;
4643 4 : int message_len, opt_len = 0, headers_len = 0;
4644 4 : int opt_err = 0, argc = ZEND_NUM_ARGS();
4645 4 : long erropt = 0;
4646 :
4647 4 : if (zend_parse_parameters(argc TSRMLS_CC, "s|lss", &message, &message_len, &erropt, &opt, &opt_len, &headers, &headers_len) == FAILURE) {
4648 0 : return;
4649 : }
4650 :
4651 4 : if (argc > 1) {
4652 4 : opt_err = erropt;
4653 : }
4654 :
4655 4 : if (_php_error_log(opt_err, message, opt, headers TSRMLS_CC) == FAILURE) {
4656 3 : RETURN_FALSE;
4657 : }
4658 :
4659 1 : RETURN_TRUE;
4660 : }
4661 : /* }}} */
4662 :
4663 : PHPAPI int _php_error_log(int opt_err, char *message, char *opt, char *headers TSRMLS_DC) /* {{{ */
4664 4 : {
4665 4 : php_stream *stream = NULL;
4666 :
4667 4 : switch (opt_err) {
4668 :
4669 : case 1: /*send an email */
4670 : {
4671 0 : if (!php_mail(opt, "PHP error_log message", message, headers, NULL TSRMLS_CC)) {
4672 0 : return FAILURE;
4673 : }
4674 : }
4675 0 : break;
4676 :
4677 : case 2: /*send to an address */
4678 0 : php_error_docref(NULL TSRMLS_CC, E_WARNING, "TCP/IP option not available!");
4679 0 : return FAILURE;
4680 : break;
4681 :
4682 : case 3: /*save to a file */
4683 4 : stream = php_stream_open_wrapper(opt, "a", IGNORE_URL_WIN | ENFORCE_SAFE_MODE | REPORT_ERRORS, NULL);
4684 4 : if (!stream)
4685 3 : return FAILURE;
4686 1 : php_stream_write(stream, message, strlen(message));
4687 1 : php_stream_close(stream);
4688 1 : break;
4689 : case 4: /* send to SAPI */
4690 0 : if (sapi_module.log_message) {
4691 0 : sapi_module.log_message(message);
4692 : } else {
4693 0 : return FAILURE;
4694 : }
4695 0 : break;
4696 : default:
4697 0 : php_log_err(message TSRMLS_CC);
4698 : break;
4699 : }
4700 1 : return SUCCESS;
4701 : }
4702 : /* }}} */
4703 :
4704 : /* {{{ proto array error_get_last()
4705 : Get the last occurred error as associative array. Returns NULL if there hasn't been an error yet. */
4706 : PHP_FUNCTION(error_get_last)
4707 6 : {
4708 6 : if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "") == FAILURE) {
4709 1 : return;
4710 : }
4711 :
4712 5 : if (PG(last_error_message)) {
4713 4 : array_init(return_value);
4714 4 : add_assoc_long_ex(return_value, "type", sizeof("type"), PG(last_error_type));
4715 4 : add_assoc_string_ex(return_value, "message", sizeof("message"), PG(last_error_message), 1);
4716 4 : add_assoc_string_ex(return_value, "file", sizeof("file"), PG(last_error_file)?PG(last_error_file):"-", 1 );
4717 4 : add_assoc_long_ex(return_value, "line", sizeof("line"), PG(last_error_lineno));
4718 : }
4719 : }
4720 : /* }}} */
4721 :
4722 : /* {{{ proto mixed call_user_func(mixed function_name [, mixed parmeter] [, mixed ...])
4723 : Call a user function which is the first parameter */
4724 : PHP_FUNCTION(call_user_func)
4725 720 : {
4726 720 : zval *retval_ptr = NULL;
4727 : zend_fcall_info fci;
4728 : zend_fcall_info_cache fci_cache;
4729 :
4730 720 : if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "f*", &fci, &fci_cache, &fci.params, &fci.param_count) == FAILURE) {
4731 14 : return;
4732 : }
4733 :
4734 706 : fci.retval_ptr_ptr = &retval_ptr;
4735 :
4736 706 : if (zend_call_function(&fci, &fci_cache TSRMLS_CC) == SUCCESS && fci.retval_ptr_ptr && *fci.retval_ptr_ptr) {
4737 700 : COPY_PZVAL_TO_ZVAL(*return_value, *fci.retval_ptr_ptr);
4738 : }
4739 :
4740 705 : if (fci.params) {
4741 235 : efree(fci.params);
4742 : }
4743 : }
4744 : /* }}} */
4745 :
4746 : /* {{{ proto mixed call_user_func_array(string function_name, array parameters)
4747 : Call a user function which is the first parameter with the arguments contained in array */
4748 : PHP_FUNCTION(call_user_func_array)
4749 152 : {
4750 152 : zval *params, *retval_ptr = NULL;
4751 : zend_fcall_info fci;
4752 : zend_fcall_info_cache fci_cache;
4753 :
4754 152 : if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "fa/", &fci, &fci_cache, ¶ms) == FAILURE) {
4755 54 : return;
4756 : }
4757 :
4758 98 : zend_fcall_info_args(&fci, params TSRMLS_CC);
4759 98 : fci.retval_ptr_ptr = &retval_ptr;
4760 :
4761 98 : if (zend_call_function(&fci, &fci_cache TSRMLS_CC) == SUCCESS && fci.retval_ptr_ptr && *fci.retval_ptr_ptr) {
4762 95 : COPY_PZVAL_TO_ZVAL(*return_value, *fci.retval_ptr_ptr);
4763 : }
4764 :
4765 98 : zend_fcall_info_args_clear(&fci, 1);
4766 : }
4767 : /* }}} */
4768 :
4769 : /* {{{ proto mixed call_user_method(string method_name, mixed object [, mixed parameter] [, mixed ...])
4770 : Call a user method on a specific object or class */
4771 : PHP_FUNCTION(call_user_method)
4772 1 : {
4773 1 : zval ***params = NULL;
4774 1 : int n_params = 0;
4775 : zval *retval_ptr;
4776 : zval *callback, *object;
4777 :
4778 1 : if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "z/z*", &callback, &object, ¶ms, &n_params) == FAILURE) {
4779 0 : return;
4780 : }
4781 :
4782 1 : if (Z_TYPE_P(object) != IS_OBJECT &&
4783 : Z_TYPE_P(object) != IS_STRING
4784 : ) {
4785 0 : php_error_docref(NULL TSRMLS_CC, E_WARNING, "Second argument is not an object or class name");
4786 0 : efree(params);
4787 0 : RETURN_FALSE;
4788 : }
4789 :
4790 1 : convert_to_string(callback);
4791 :
4792 1 : if (call_user_function_ex(EG(function_table), &object, callback, &retval_ptr, n_params, params, 0, NULL TSRMLS_CC) == SUCCESS) {
4793 1 : if (retval_ptr) {
4794 1 : COPY_PZVAL_TO_ZVAL(*return_value, retval_ptr);
4795 : }
4796 : } else {
4797 0 : php_error_docref(NULL TSRMLS_CC, E_WARNING, "Unable to call %s()", Z_STRVAL_P(callback));
4798 : }
4799 1 : if (n_params) {
4800 0 : efree(params);
4801 : }
4802 : }
4803 : /* }}} */
4804 :
4805 : /* {{{ proto mixed call_user_method_array(string method_name, mixed object, array params)
4806 : Call a user method on a specific object or class using a parameter array */
4807 : PHP_FUNCTION(call_user_method_array)
4808 1 : {
4809 1 : zval *params, ***method_args = NULL, *retval_ptr;
4810 : zval *callback, *object;
4811 : HashTable *params_ar;
4812 1 : int num_elems, element = 0;
4813 :
4814 1 : if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "z/zA/", &callback, &object, ¶ms) == FAILURE) {
4815 0 : return;
4816 : }
4817 :
4818 1 : if (Z_TYPE_P(object) != IS_OBJECT &&
4819 : Z_TYPE_P(object) != IS_STRING
4820 : ) {
4821 0 : php_error_docref(NULL TSRMLS_CC, E_WARNING, "Second argument is not an object or class name");
4822 0 : RETURN_FALSE;
4823 : }
4824 :
4825 1 : convert_to_string(callback);
4826 :
4827 1 : params_ar = HASH_OF(params);
4828 1 : num_elems = zend_hash_num_elements(params_ar);
4829 1 : method_args = (zval ***) safe_emalloc(sizeof(zval **), num_elems, 0);
4830 :
4831 1 : for (zend_hash_internal_pointer_reset(params_ar);
4832 2 : zend_hash_get_current_data(params_ar, (void **) &(method_args[element])) == SUCCESS;
4833 : zend_hash_move_forward(params_ar)
4834 0 : ) {
4835 0 : element++;
4836 : }
4837 :
4838 1 : if (call_user_function_ex(EG(function_table), &object, callback, &retval_ptr, num_elems, method_args, 0, NULL TSRMLS_CC) == SUCCESS) {
4839 1 : if (retval_ptr) {
4840 0 : COPY_PZVAL_TO_ZVAL(*return_value, retval_ptr);
4841 : }
4842 : } else {
4843 0 : php_error_docref(NULL TSRMLS_CC, E_WARNING, "Unable to call %s()", Z_STRVAL_P(callback));
4844 : }
4845 :
4846 1 : efree(method_args);
4847 : }
4848 : /* }}} */
4849 :
4850 : /* {{{ proto mixed forward_static_call(mixed function_name [, mixed parmeter] [, mixed ...]) U
4851 : Call a user function which is the first parameter */
4852 : PHP_FUNCTION(forward_static_call)
4853 12 : {
4854 12 : zval *retval_ptr = NULL;
4855 : zend_fcall_info fci;
4856 : zend_fcall_info_cache fci_cache;
4857 :
4858 12 : if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "f*", &fci, &fci_cache, &fci.params, &fci.param_count) == FAILURE) {
4859 0 : return;
4860 : }
4861 :
4862 12 : if (!EG(active_op_array)->scope) {
4863 1 : zend_error(E_ERROR, "Cannot call forward_static_call() when no class scope is active");
4864 : }
4865 :
4866 11 : fci.retval_ptr_ptr = &retval_ptr;
4867 :
4868 11 : if (EG(called_scope) &&
4869 : instanceof_function(EG(called_scope), fci_cache.calling_scope TSRMLS_CC)) {
4870 10 : fci_cache.called_scope = EG(called_scope);
4871 : }
4872 :
4873 11 : if (zend_call_function(&fci, &fci_cache TSRMLS_CC) == SUCCESS && fci.retval_ptr_ptr && *fci.retval_ptr_ptr) {
4874 11 : COPY_PZVAL_TO_ZVAL(*return_value, *fci.retval_ptr_ptr);
4875 : }
4876 :
4877 11 : if (fci.params) {
4878 0 : efree(fci.params);
4879 : }
4880 : }
4881 : /* }}} */
4882 :
4883 : /* {{{ proto mixed call_user_func_array(string function_name, array parameters) U
4884 : Call a user function which is the first parameter with the arguments contained in array */
4885 : PHP_FUNCTION(forward_static_call_array)
4886 0 : {
4887 0 : zval *params, *retval_ptr = NULL;
4888 : zend_fcall_info fci;
4889 : zend_fcall_info_cache fci_cache;
4890 :
4891 0 : if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "fa/", &fci, &fci_cache, ¶ms) == FAILURE) {
4892 0 : return;
4893 : }
4894 :
4895 0 : zend_fcall_info_args(&fci, params TSRMLS_CC);
4896 0 : fci.retval_ptr_ptr = &retval_ptr;
4897 :
4898 0 : if (EG(called_scope) &&
4899 : instanceof_function(EG(called_scope), fci_cache.calling_scope TSRMLS_CC)) {
4900 0 : fci_cache.called_scope = EG(called_scope);
4901 : }
4902 :
4903 0 : if (zend_call_function(&fci, &fci_cache TSRMLS_CC) == SUCCESS && fci.retval_ptr_ptr && *fci.retval_ptr_ptr) {
4904 0 : COPY_PZVAL_TO_ZVAL(*return_value, *fci.retval_ptr_ptr);
4905 : }
4906 :
4907 0 : zend_fcall_info_args_clear(&fci, 1);
4908 : }
4909 : /* }}} */
4910 :
4911 : void user_shutdown_function_dtor(php_shutdown_function_entry *shutdown_function_entry) /* {{{ */
4912 13 : {
4913 : int i;
4914 :
4915 27 : for (i = 0; i < shutdown_function_entry->arg_count; i++) {
4916 14 : zval_ptr_dtor(&shutdown_function_entry->arguments[i]);
4917 : }
4918 13 : efree(shutdown_function_entry->arguments);
4919 13 : }
4920 : /* }}} */
4921 :
4922 : void user_tick_function_dtor(user_tick_function_entry *tick_function_entry) /* {{{ */
4923 2 : {
4924 : int i;
4925 :
4926 4 : for (i = 0; i < tick_function_entry->arg_count; i++) {
4927 2 : zval_ptr_dtor(&tick_function_entry->arguments[i]);
4928 : }
4929 2 : efree(tick_function_entry->arguments);
4930 2 : }
4931 : /* }}} */
4932 :
4933 : static int user_shutdown_function_call(php_shutdown_function_entry *shutdown_function_entry TSRMLS_DC) /* {{{ */
4934 13 : {
4935 : zval retval;
4936 : char *function_name;
4937 :
4938 13 : if (!zend_is_callable(shutdown_function_entry->arguments[0], 0, &function_name TSRMLS_CC)) {
4939 1 : php_error(E_WARNING, "(Registered shutdown functions) Unable to call %s() - function does not exist", function_name);
4940 1 : if (function_name) {
4941 1 : efree(function_name);
4942 : }
4943 1 : return 0;
4944 : }
4945 12 : if (function_name) {
4946 12 : efree(function_name);
4947 : }
4948 :
4949 12 : if (call_user_function(EG(function_table), NULL,
4950 : shutdown_function_entry->arguments[0],
4951 : &retval,
4952 : shutdown_function_entry->arg_count - 1,
4953 : shutdown_function_entry->arguments + 1
4954 : TSRMLS_CC ) == SUCCESS)
4955 : {
4956 11 : zval_dtor(&retval);
4957 : }
4958 11 : return 0;
4959 : }
4960 : /* }}} */
4961 :
4962 : static void user_tick_function_call(user_tick_function_entry *tick_fe TSRMLS_DC) /* {{{ */
4963 19 : {
4964 : zval retval;
4965 19 : zval *function = tick_fe->arguments[0];
4966 :
4967 : /* Prevent reentrant calls to the same user ticks function */
4968 19 : if (! tick_fe->calling) {
4969 11 : tick_fe->calling = 1;
4970 :
4971 11 : if (call_user_function( EG(function_table), NULL,
4972 : function,
4973 : &retval,
4974 : tick_fe->arg_count - 1,
4975 : tick_fe->arguments + 1
4976 : TSRMLS_CC) == SUCCESS) {
4977 11 : zval_dtor(&retval);
4978 :
4979 : } else {
4980 : zval **obj, **method;
4981 :
4982 0 : if (Z_TYPE_P(function) == IS_STRING) {
4983 0 : php_error_docref(NULL TSRMLS_CC, E_WARNING, "Unable to call %s() - function does not exist", Z_STRVAL_P(function));
4984 0 : } else if ( Z_TYPE_P(function) == IS_ARRAY
4985 : && zend_hash_index_find(Z_ARRVAL_P(function), 0, (void **) &obj) == SUCCESS
4986 : && zend_hash_index_find(Z_ARRVAL_P(function), 1, (void **) &method) == SUCCESS
4987 : && Z_TYPE_PP(obj) == IS_OBJECT
4988 : && Z_TYPE_PP(method) == IS_STRING) {
4989 0 : php_error_docref(NULL TSRMLS_CC, E_WARNING, "Unable to call %s::%s() - function does not exist", Z_OBJCE_PP(obj)->name, Z_STRVAL_PP(method));
4990 : } else {
4991 0 : php_error_docref(NULL TSRMLS_CC, E_WARNING, "Unable to call tick function");
4992 : }
4993 : }
4994 :
4995 11 : tick_fe->calling = 0;
4996 : }
4997 19 : }
4998 : /* }}} */
4999 :
5000 : static void run_user_tick_functions(int tick_count) /* {{{ */
5001 19 : {
5002 : TSRMLS_FETCH();
5003 :
5004 19 : zend_llist_apply(BG(user_tick_functions), (llist_apply_func_t) user_tick_function_call TSRMLS_CC);
5005 19 : }
5006 : /* }}} */
5007 :
5008 : static int user_tick_function_compare(user_tick_function_entry * tick_fe1, user_tick_function_entry * tick_fe2) /* {{{ */
5009 3 : {
5010 3 : zval *func1 = tick_fe1->arguments[0];
5011 3 : zval *func2 = tick_fe2->arguments[0];
5012 : int ret;
5013 : TSRMLS_FETCH();
5014 :
5015 6 : if (Z_TYPE_P(func1) == IS_STRING && Z_TYPE_P(func2) == IS_STRING) {
5016 |