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