/***************************************************************************
    begin		: Thu Oct 17 2002
    copyright	        : (C) 2002 by Heiko Nardmann
    email		: h.nardmann@secunet.de

    php5 version by Thorsten Kunz (tk AT bytecrash DOT net)
 ***************************************************************************/

/***************************************************************************
 *									 *
 *   This program is free software; you can redistribute it and/or modify  *
 *   it under the terms of the GNU General Public License as published by  *
 *   the Free Software Foundation; either version 2 of the License, or     *
 *   (at your option) any later version.				   *
 *									 *
 ***************************************************************************/

#include "php5writer.h"

#include <kdebug.h>
#include <qregexp.h>
#include <qstring.h>

#include "../umldoc.h"
#include "../class.h"
#include "../interface.h"
#include "../association.h"
#include "../attribute.h"
#include "../operation.h"
#include "../umlnamespace.h"

static const char *words[] =
{
  "abs",
  "abstract",
  "acos",
  "acosh",
  "add",
  "addAction",
  "addColor",
  "addEntry",
  "addFill",
  "addShape",
  "addString",
  "add_namespace",
  "addcslashes",
  "addslashes",
  "addstring",
  "aggregate",
  "aggregate_info",
  "aggregate_methods",
  "aggregate_methods_by_list",
  "aggregate_methods_by_regexp",
  "aggregate_properties",
  "aggregate_properties_by_list",
  "aggregate_properties_by_regexp",
  "aggregation_info",
  "align",
  "apache_child_terminate",
  "apache_lookup_uri",
  "apache_note",
  "apache_request_headers",
  "apache_response_headers",
  "apache_setenv",
  "append_child",
  "append_sibling",
  "array",
  "array_change_key_case",
  "array_chunk",
  "array_count_values",
  "array_diff",
  "array_diff_assoc",
  "array_fill",
  "array_filter",
  "array_flip",
  "array_intersect",
  "array_intersect_assoc",
  "array_key_exists",
  "array_keys",
  "array_map",
  "array_merge",
  "array_merge_recursive",
  "array_multisort",
  "array_pad",
  "array_pop",
  "array_push",
  "array_rand",
  "array_reduce",
  "array_reverse",
  "array_search",
  "array_shift",
  "array_slice",
  "array_splice",
  "array_sum",
  "array_unique",
  "array_unshift",
  "array_values",
  "array_walk",
  "arsort",
  "ascii2ebcdic",
  "asin",
  "asinh",
  "asort",
  "aspell_check",
  "aspell_new",
  "aspell_suggest",
  "assert",
  "assert_options",
  "assign",
  "atan",
  "atan2",
  "atanh",
  "attreditable",
  "attributes",
  "base64_decode",
  "base64_encode",
  "base_convert",
  "basename",
  "bcadd",
  "bccomp",
  "bcdiv",
  "bcmod",
  "bcmul",
  "bcpow",
  "bcpowmod",
  "bcscale",
  "bcsqrt",
  "bcsub",
  "bin2hex",
  "bindec",
  "bindtextdomain",
  "bind_textdomain_codeset",
  "bool",
  "break",
  "bzclose",
  "bzcompress",
  "bzdecompress",
  "bzerrno",
  "bzerror",
  "bzerrstr",
  "bzflush",
  "bzopen",
  "bzread",
  "bzwrite",
  "cal_days_in_month",
  "cal_from_jd",
  "cal_info",
  "call_user_func",
  "call_user_func_array",
  "call_user_method",
  "call_user_method_array",
  "cal_to_jd",
  "ccvs_add",
  "ccvs_auth",
  "ccvs_command",
  "ccvs_count",
  "ccvs_delete",
  "ccvs_done",
  "ccvs_init",
  "ccvs_lookup",
  "ccvs_new",
  "ccvs_report",
  "ccvs_return",
  "ccvs_reverse",
  "ccvs_sale",
  "ccvs_status",
  "ccvs_textvalue",
  "ccvs_void",
  "ceil",
  "chdir",
  "checkdate",
  "checkdnsrr",
  "checkin",
  "checkout",
  "chgrp",
  "child_nodes",
  "children",
  "chmod",
  "chop",
  "chown",
  "chr",
  "chroot",
  "chunk_split",
  "class",
  "class_exists",
  "clearstatcache",
  "clone_node",
  "closedir",
  "closelog",
  "com_addref",
  "com_get",
  "com_invoke",
  "com_isenum",
  "com_load",
  "com_load_typelib",
  "compact",
  "com_propget",
  "com_propput",
  "com_propset",
  "com_release",
  "com_set",
  "connection_aborted",
  "connection_status",
  "connection_timeout",
  "constant",
  "content",
  "continue",
  "convert_cyr_string",
  "_COOKIE",
  "copy",
  "cos",
  "cosh",
  "count",
  "count_chars",
  "cpdf_add_annotation",
  "cpdf_add_outline",
  "cpdf_arc",
  "cpdf_begin_text",
  "cpdf_circle",
  "cpdf_clip",
  "cpdf_close",
  "cpdf_closepath",
  "cpdf_closepath_fill_stroke",
  "cpdf_closepath_stroke",
  "cpdf_continue_text",
  "cpdf_curveto",
  "cpdf_end_text",
  "cpdf_fill",
  "cpdf_fill_stroke",
  "cpdf_finalize",
  "cpdf_finalize_page",
  "cpdf_global_set_document_limits",
  "cpdf_import_jpeg",
  "cpdf_lineto",
  "cpdf_moveto",
  "cpdf_newpath",
  "cpdf_open",
  "cpdf_output_buffer",
  "cpdf_page_init",
  "cpdf_place_inline_image",
  "cpdf_rect",
  "cpdf_restore",
  "cpdf_rlineto",
  "cpdf_rmoveto",
  "cpdf_rotate",
  "cpdf_rotate_text",
  "cpdf_save",
  "cpdf_save_to_file",
  "cpdf_scale",
  "cpdf_set_action_url",
  "cpdf_set_char_spacing",
  "cpdf_set_creator",
  "cpdf_set_current_page",
  "cpdf_setdash",
  "cpdf_setflat",
  "cpdf_set_font",
  "cpdf_set_font_directories",
  "cpdf_set_font_map_file",
  "cpdf_setgray",
  "cpdf_setgray_fill",
  "cpdf_setgray_stroke",
  "cpdf_set_horiz_scaling",
  "cpdf_set_keywords",
  "cpdf_set_leading",
  "cpdf_setlinecap",
  "cpdf_setlinejoin",
  "cpdf_setlinewidth",
  "cpdf_setmiterlimit",
  "cpdf_set_page_animation",
  "cpdf_setrgbcolor",
  "cpdf_setrgbcolor_fill",
  "cpdf_setrgbcolor_stroke",
  "cpdf_set_subject",
  "cpdf_set_text_matrix",
  "cpdf_set_text_pos",
  "cpdf_set_text_rendering",
  "cpdf_set_text_rise",
  "cpdf_set_title",
  "cpdf_set_viewer_preferences",
  "cpdf_set_word_spacing",
  "cpdf_show",
  "cpdf_show_xy",
  "cpdf_stringwidth",
  "cpdf_stroke",
  "cpdf_text",
  "cpdf_translate",
  "crack_check",
  "crack_closedict",
  "crack_getlastmessage",
  "crack_opendict",
  "crc32",
  "create_attribute",
  "create_cdata_section",
  "create_comment",
  "create_element",
  "create_element_ns",
  "create_entity_reference",
  "create_function",
  "create_processing_instruction",
  "create_text_node",
  "crypt",
  "ctype_alnum",
  "ctype_alpha",
  "ctype_cntrl",
  "ctype_digit",
  "ctype_graph",
  "ctype_lower",
  "ctype_print",
  "ctype_punct",
  "ctype_space",
  "ctype_upper",
  "ctype_xdigit",
  "curl_close",
  "curl_errno",
  "curl_error",
  "curl_exec",
  "curl_getinfo",
  "curl_init",
  "curl_setopt",
  "curl_version",
  "current",
  "cybercash_base64_decode",
  "cybercash_base64_encode",
  "cybercash_decr",
  "cybercash_encr",
  "cybermut_creerformulairecm",
  "cybermut_creerreponsecm",
  "cybermut_testmac",
  "cyrus_authenticate",
  "cyrus_bind",
  "cyrus_close",
  "cyrus_connect",
  "cyrus_query",
  "cyrus_unbind",
  "data",
  "date",
  "dba_close",
  "dba_delete",
  "dba_exists",
  "dba_fetch",
  "dba_firstkey",
  "dba_handlers",
  "dba_insert",
  "dba_list",
  "dba_nextkey",
  "dba_open",
  "dba_optimize",
  "dba_popen",
  "dba_replace",
  "dbase_add_record",
  "dbase_close",
  "dbase_create",
  "dbase_delete_record",
  "dbase_get_record",
  "dbase_get_record_with_names",
  "dbase_numfields",
  "dbase_numrecords",
  "dbase_open",
  "dbase_pack",
  "dbase_replace_record",
  "dba_sync",
  "dblist",
  "dbmclose",
  "dbmdelete",
  "dbmexists",
  "dbmfetch",
  "dbmfirstkey",
  "dbminsert",
  "dbmnextkey",
  "dbmopen",
  "dbmreplace",
  "dbplus_add",
  "dbplus_aql",
  "dbplus_chdir",
  "dbplus_close",
  "dbplus_curr",
  "dbplus_errcode",
  "dbplus_errno",
  "dbplus_find",
  "dbplus_first",
  "dbplus_flush",
  "dbplus_freealllocks",
  "dbplus_freelock",
  "dbplus_freerlocks",
  "dbplus_getlock",
  "dbplus_getunique",
  "dbplus_info",
  "dbplus_last",
  "dbplus_lockrel",
  "dbplus_next",
  "dbplus_open",
  "dbplus_prev",
  "dbplus_rchperm",
  "dbplus_rcreate",
  "dbplus_rcrtexact",
  "dbplus_rcrtlike",
  "dbplus_resolve",
  "dbplus_restorepos",
  "dbplus_rkeys",
  "dbplus_ropen",
  "dbplus_rquery",
  "dbplus_rrename",
  "dbplus_rsecindex",
  "dbplus_runlink",
  "dbplus_rzap",
  "dbplus_savepos",
  "dbplus_setindex",
  "dbplus_setindexbynumber",
  "dbplus_sql",
  "dbplus_tcl",
  "dbplus_tremove",
  "dbplus_undo",
  "dbplus_undoprepare",
  "dbplus_unlockrel",
  "dbplus_unselect",
  "dbplus_update",
  "dbplus_xlockrel",
  "dbplus_xunlockrel",
  "dbstat",
  "dbx_close",
  "dbx_compare",
  "dbx_connect",
  "dbx_error",
  "dbx_escape_string",
  "dbx_query",
  "dbx_sort",
  "dcgettext",
  "dcngettext",
  "dcstat",
  "deaggregate",
  "debug_backtrace",
  "debugger_off",
  "debugger_on",
  "decbin",
  "dechex",
  "declare",
  "decoct",
  "DEFAULT_INCLUDE_PATH",
  "define",
  "defined",
  "define_syslog_variables",
  "deg2rad",
  "delete",
  "description",
  "dgettext",
  "die",
  "dio_close",
  "dio_fcntl",
  "dio_open",
  "dio_read",
  "dio_seek",
  "dio_stat",
  "dio_tcsetattr",
  "dio_truncate",
  "dio_write",
  "dir",
  "dirname",
  "disk_free_space",
  "diskfreespace",
  "disk_total_space",
  "dl",
  "dngettext",
  "dns_check_record",
  "dns_get_mx",
  "dns_get_record",
  "do",
  "doctype",
  "document_element",
  "DOCUMENT_ROOT",
  "domxml_new_doc",
  "domxml_open_file",
  "domxml_open_mem",
  "domxml_version",
  "domxml_xmltree",
  "domxml_xslt_stylesheet",
  "domxml_xslt_stylesheet_doc",
  "domxml_xslt_stylesheet_file",
  "dotnet_load",
  "doubleval",
  "drawCurve",
  "drawCurveTo",
  "drawLine",
  "drawLineTo",
  "dstanchors",
  "dstofsrcanchors",
  "dump_file",
  "dump_mem",
  "dump_node",
  "each",
  "E_ALL",
  "easter_date",
  "easter_days",
  "ebcdic2ascii",
  "echo",
  "E_COMPILE_ERROR",
  "E_COMPILE_WARNING",
  "E_CORE_ERROR",
  "E_CORE_WARNING",
  "E_ERROR",
  "else",
  "elseif",
  "empty",
  "end",
  "endfor",
  "endforeach",
  "endif",
  "endswitch",
  "endwhile",
  "E_NOTICE",
  "entities",
  "_ENV",
  "E_PARSE",
  "ereg",
  "eregi",
  "eregi_replace",
  "ereg_replace",
  "error_log",
  "error_reporting",
  "escapeshellarg",
  "escapeshellcmd",
  "E_USER_ERROR",
  "E_USER_NOTICE",
  "E_USER_WARNING",
  "eval",
  "E_WARNING",
  "exec",
  "exif_imagetype",
  "exif_read_data",
  "exif_thumbnail",
  "exit",
  "exp",
  "explode",
  "expm1",
  "extension_loaded",
  "extract",
  "ezmlm_hash",
  "FALSE",
  "fbsql_affected_rows",
  "fbsql_autocommit",
  "fbsql_change_user",
  "fbsql_close",
  "fbsql_commit",
  "fbsql_connect",
  "fbsql_create_blob",
  "fbsql_create_clob",
  "fbsql_create_db",
  "fbsql_database",
  "fbsql_database_password",
  "fbsql_data_seek",
  "fbsql_db_query",
  "fbsql_db_status",
  "fbsql_drop_db",
  "fbsql_errno",
  "fbsql_error",
  "fbsql_fetch_array",
  "fbsql_fetch_assoc",
  "fbsql_fetch_field",
  "fbsql_fetch_lengths",
  "fbsql_fetch_object",
  "fbsql_fetch_row",
  "fbsql_field_flags",
  "fbsql_field_len",
  "fbsql_field_name",
  "fbsql_field_seek",
  "fbsql_field_table",
  "fbsql_field_type",
  "fbsql_free_result",
  "fbsql_get_autostart_info",
  "fbsql_hostname",
  "fbsql_insert_id",
  "fbsql_list_dbs",
  "fbsql_list_fields",
  "fbsql_list_tables",
  "fbsql_next_result",
  "fbsql_num_fields",
  "fbsql_num_rows",
  "fbsql_password",
  "fbsql_pconnect",
  "fbsql_query",
  "fbsql_read_blob",
  "fbsql_read_clob",
  "fbsql_result",
  "fbsql_rollback",
  "fbsql_select_db",
  "fbsql_set_lob_mode",
  "fbsql_set_transaction",
  "fbsql_start_db",
  "fbsql_stop_db",
  "fbsql_tablename",
  "fbsql_username",
  "fbsql_warnings",
  "fclose",
  "fdf_add_doc_javascript",
  "fdf_add_template",
  "fdf_close",
  "fdf_create",
  "fdf_errno",
  "fdf_error",
  "fdf_get_ap",
  "fdf_get_attachment",
  "fdf_get_encoding",
  "fdf_get_file",
  "fdf_get_status",
  "fdf_get_value",
  "fdf_get_version",
  "fdf_header",
  "fdf_next_field_name",
  "fdf_open",
  "fdf_open_string",
  "fdf_save",
  "fdf_save_string",
  "fdf_set_ap",
  "fdf_set_encoding",
  "fdf_set_file",
  "fdf_set_flags",
  "fdf_set_javascript_action",
  "fdf_set_opt",
  "fdf_set_status",
  "fdf_set_submit_form_action",
  "fdf_set_target_frame",
  "fdf_set_value",
  "fdf_set_version",
  "feof",
  "fflush",
  "fgetc",
  "fgetcsv",
  "fgets",
  "fgetss",
  "file",
  "__FILE__",
  "fileatime",
  "filectime",
  "file_exists",
  "file_get_contents",
  "filegroup",
  "fileinode",
  "filemtime",
  "fileowner",
  "fileperms",
  "filepro",
  "filepro_fieldcount",
  "filepro_fieldname",
  "filepro_fieldtype",
  "filepro_fieldwidth",
  "filepro_retrieve",
  "filepro_rowcount",
  "_FILES",
  "filesize",
  "filetype",
  "find",
  "first_child",
  "floatval",
  "flock",
  "floor",
  "flush",
  "fmod",
  "fnmatch",
  "fopen",
  "for",
  "foreach",
  "fpassthru",
  "fprintf",
  "fputs",
  "fread",
  "frenchtojd",
  "fribidi_log2vis",
  "fscanf",
  "fseek",
  "fsockopen",
  "fstat",
  "ftell",
  "ftok",
  "ftp_cdup",
  "ftp_chdir",
  "ftp_close",
  "ftp_connect",
  "ftp_delete",
  "ftp_exec",
  "ftp_fget",
  "ftp_fput",
  "ftp_get",
  "ftp_get_option",
  "ftp_login",
  "ftp_mdtm",
  "ftp_mkdir",
  "ftp_nb_continue",
  "ftp_nb_fget",
  "ftp_nb_fput",
  "ftp_nb_get",
  "ftp_nb_put",
  "ftp_nlist",
  "ftp_pasv",
  "ftp_put",
  "ftp_pwd",
  "ftp_quit",
  "ftp_rawlist",
  "ftp_rename",
  "ftp_rmdir",
  "ftp_set_option",
  "ftp_site",
  "ftp_size",
  "ftp_ssl_connect",
  "ftp_systype",
  "ftruncate",
  "ftstat",
  "func_get_arg",
  "func_get_args",
  "func_num_args",
  "function",
  "function_exists",
  "fwrite",
  "GATEWAY_INTERFACE",
  "gd_info",
  "_GET",
  "getallheaders",
  "get_attribute",
  "get_attribute_node",
  "get_browser",
  "get_cfg_var",
  "get_class",
  "get_class_methods",
  "get_class_vars",
  "get_content",
  "get_current_user",
  "getcwd",
  "getdate",
  "get_declared_classes",
  "get_defined_constants",
  "get_defined_functions",
  "get_defined_vars",
  "get_element_by_id",
  "get_elements_by_tagname",
  "getenv",
  "get_extension_funcs",
  "getHeight",
  "gethostbyaddr",
  "gethostbyname",
  "gethostbynamel",
  "get_html_translation_table",
  "getimagesize",
  "get_included_files",
  "get_include_path",
  "getlastmod",
  "get_loaded_extensions",
  "get_magic_quotes_gpc",
  "get_magic_quotes_runtime",
  "get_meta_tags",
  "getmxrr",
  "getmygid",
  "getmyinode",
  "getmypid",
  "getmyuid",
  "get_object_vars",
  "getopt",
  "get_parent_class",
  "getprotobyname",
  "getprotobynumber",
  "getrandmax",
  "get_required_files",
  "get_resource_type",
  "getrusage",
  "getservbyname",
  "getservbyport",
  "getshape1",
  "getshape2",
  "gettext",
  "gettimeofday",
  "gettype",
  "getwidth",
  "getWidth",
  "glob",
  "global",
  "GLOBALS",
  "gmdate",
  "gmmktime",
  "gmp_abs",
  "gmp_add",
  "gmp_and",
  "gmp_clrbit",
  "gmp_cmp",
  "gmp_com",
  "gmp_div",
  "gmp_divexact",
  "gmp_div_q",
  "gmp_div_qr",
  "gmp_div_r",
  "gmp_fact",
  "gmp_gcd",
  "gmp_gcdext",
  "gmp_hamdist",
  "gmp_init",
  "gmp_intval",
  "gmp_invert",
  "gmp_jacobi",
  "gmp_legendre",
  "gmp_mod",
  "gmp_mul",
  "gmp_neg",
  "gmp_or",
  "gmp_perfect_square",
  "gmp_popcount",
  "gmp_pow",
  "gmp_powm",
  "gmp_prob_prime",
  "gmp_random",
  "gmp_scan0",
  "gmp_scan1",
  "gmp_setbit",
  "gmp_sign",
  "gmp_sqrt",
  "gmp_sqrtrm",
  "gmp_strval",
  "gmp_sub",
  "gmp_xor",
  "gmstrftime",
  "gregoriantojd",
  "gzclose",
  "gzcompress",
  "gzdeflate",
  "gzencode",
  "gzeof",
  "gzfile",
  "gzgetc",
  "gzgets",
  "gzgetss",
  "gzinflate",
  "gzopen",
  "gzpassthru",
  "gzputs",
  "gzread",
  "gzrewind",
  "gzseek",
  "gztell",
  "gzuncompress",
  "gzwrite",
  "has_attribute",
  "has_attributess",
  "has_child_nodes",
  "header",
  "headers_sent",
  "hebrev",
  "hebrevc",
  "hexdec",
  "highlight_file",
  "highlight_string",
  "html_dump_mem",
  "htmlentities",
  "html_entity_decode",
  "htmlspecialchars",
  "HTTP_ACCEPT",
  "HTTP_ACCEPT_CHARSET",
  "HTTP_ACCEPT_LANGUAGE",
  "HTTP_CONNECTION",
  "HTTP_COOKIE_VARS",
  "HTTP_ENCODING",
  "HTTP_ENV_VARS",
  "HTTP_GET_VARS",
  "HTTP_HOST",
  "HTTP_POST_FILES",
  "HTTP_POST_VARS",
  "HTTP_RAW_POST_DATA",
  "HTTP_REFERER",
  "HTTP_SERVER_VARS",
  "HTTP_SESSION_VARS",
  "HTTP_STATE_VARS",
  "HTTP_USER_AGENT",
  "hw_api_attribute",
  "hw_api_content",
  "hwapi_hgcsp",
  "hw_api_object",
  "hw_Array2Objrec",
  "hw_changeobject",
  "hw_Children",
  "hw_ChildrenObj",
  "hw_Close",
  "hw_Connect",
  "hw_connection_info",
  "hw_Cp",
  "hw_Deleteobject",
  "hw_DocByAnchor",
  "hw_DocByAnchorObj",
  "hw_Document_Attributes",
  "hw_Document_BodyTag",
  "hw_Document_Content",
  "hw_Document_SetContent",
  "hw_Document_Size",
  "hw_dummy",
  "hw_EditText",
  "hw_Error",
  "hw_ErrorMsg",
  "hw_Free_Document",
  "hw_GetAnchors",
  "hw_GetAnchorsObj",
  "hw_GetAndLock",
  "hw_GetChildColl",
  "hw_GetChildCollObj",
  "hw_GetChildDocColl",
  "hw_GetChildDocCollObj",
  "hw_GetObject",
  "hw_GetObjectByQuery",
  "hw_GetObjectByQueryColl",
  "hw_GetObjectByQueryCollObj",
  "hw_GetObjectByQueryObj",
  "hw_GetParents",
  "hw_GetParentsObj",
  "hw_getrellink",
  "hw_GetRemote",
  "hw_GetRemoteChildren",
  "hw_GetSrcByDestObj",
  "hw_GetText",
  "hw_getusername",
  "hw_Identify",
  "hw_InCollections",
  "hw_Info",
  "hw_InsColl",
  "hw_InsDoc",
  "hw_insertanchors",
  "hw_InsertDocument",
  "hw_InsertObject",
  "hw_mapid",
  "hw_Modifyobject",
  "hw_Mv",
  "hw_New_Document",
  "hw_Objrec2Array",
  "hw_Output_Document",
  "hw_pConnect",
  "hw_PipeDocument",
  "hw_Root",
  "hw_setlinkroot",
  "hw_stat",
  "hwstat",
  "hw_Unlock",
  "hw_Who",
  "hypot",
  "ibase_blob_add",
  "ibase_blob_cancel",
  "ibase_blob_close",
  "ibase_blob_create",
  "ibase_blob_echo",
  "ibase_blob_get",
  "ibase_blob_import",
  "ibase_blob_info",
  "ibase_blob_open",
  "ibase_close",
  "ibase_commit",
  "ibase_connect",
  "ibase_errmsg",
  "ibase_execute",
  "ibase_fetch_object",
  "ibase_fetch_row",
  "ibase_field_info",
  "ibase_free_query",
  "ibase_free_result",
  "ibase_num_fields",
  "ibase_pconnect",
  "ibase_prepare",
  "ibase_query",
  "ibase_rollback",
  "ibase_timefmt",
  "ibase_trans",
  "iconv",
  "iconv_get_encoding",
  "iconv_set_encoding",
  "identify",
  "if",
  "ifx_affected_rows",
  "ifx_blobinfile_mode",
  "ifx_byteasvarchar",
  "ifx_close",
  "ifx_connect",
  "ifx_copy_blob",
  "ifx_create_blob",
  "ifx_create_char",
  "ifx_do",
  "ifx_error",
  "ifx_errormsg",
  "ifx_fetch_row",
  "ifx_fieldproperties",
  "ifx_fieldtypes",
  "ifx_free_blob",
  "ifx_free_char",
  "ifx_free_result",
  "ifx_get_blob",
  "ifx_get_char",
  "ifx_getsqlca",
  "ifx_htmltbl_result",
  "ifx_nullformat",
  "ifx_num_fields",
  "ifx_num_rows",
  "ifx_pconnect",
  "ifx_prepare",
  "ifx_query",
  "ifx_textasvarchar",
  "ifx_update_blob",
  "ifx_update_char",
  "ifxus_close_slob",
  "ifxus_create_slob",
  "ifxus_free_slob",
  "ifxus_open_slob",
  "ifxus_read_slob",
  "ifxus_seek_slob",
  "ifxus_tell_slob",
  "ifxus_write_slob",
  "ignore_user_abort",
  "image2wbmp",
  "imagealphablending",
  "imagearc",
  "imagechar",
  "imagecharup",
  "imagecolorallocate",
  "imagecolorallocatealpha",
  "imagecolorat",
  "imagecolorclosest",
  "imagecolorclosestalpha",
  "imagecolorclosesthwb",
  "imagecolordeallocate",
  "imagecolorexact",
  "imagecolorexactalpha",
  "imagecolorresolve",
  "imagecolorresolvealpha",
  "imagecolorset",
  "imagecolorsforindex",
  "imagecolorstotal",
  "imagecolortransparent",
  "imagecopy",
  "imagecopymerge",
  "imagecopymergegray",
  "imagecopyresampled",
  "imagecopyresized",
  "imagecreate",
  "imagecreatefromgd",
  "imagecreatefromgd2",
  "imagecreatefromgd2part",
  "imagecreatefromgif",
  "imagecreatefromjpeg",
  "imagecreatefrompng",
  "imagecreatefromstring",
  "imagecreatefromwbmp",
  "imagecreatefromxbm",
  "imagecreatefromxpm",
  "imagecreatetruecolor",
  "imagedashedline",
  "imagedestroy",
  "imageellipse",
  "imagefill",
  "imagefilledarc",
  "imagefilledellipse",
  "imagefilledpolygon",
  "imagefilledrectangle",
  "imagefilltoborder",
  "imagefontheight",
  "imagefontwidth",
  "imageftbbox",
  "imagefttext",
  "imagegammacorrect",
  "imagegd",
  "imagegd2",
  "imagegif",
  "imageinterlace",
  "imagejpeg",
  "imageline",
  "imageloadfont",
  "imagepalettecopy",
  "imagepng",
  "imagepolygon",
  "imagepsbbox",
  "imagepscopyfont",
  "imagepsencodefont",
  "imagepsextendfont",
  "imagepsfreefont",
  "imagepsloadfont",
  "imagepsslantfont",
  "imagepstext",
  "imagerectangle",
  "imagerotate",
  "imagesetbrush",
  "imagesetpixel",
  "imagesetstyle",
  "imagesetthickness",
  "imagesettile",
  "imagestring",
  "imagestringup",
  "imagesx",
  "imagesy",
  "imagetruecolortopalette",
  "imagettfbbox",
  "imagettftext",
  "imagetypes",
  "image_type_to_mime_type",
  "imagewbmp",
  "imap_8bit",
  "imap_alerts",
  "imap_append",
  "imap_base64",
  "imap_binary",
  "imap_body",
  "imap_bodystruct",
  "imap_check",
  "imap_clearflag_full",
  "imap_close",
  "imap_createmailbox",
  "imap_delete",
  "imap_deletemailbox",
  "imap_errors",
  "imap_expunge",
  "imap_fetchbody",
  "imap_fetchheader",
  "imap_fetch_overview",
  "imap_fetchstructure",
  "imap_getmailboxes",
  "imap_get_quota",
  "imap_get_quotaroot",
  "imap_getsubscribed",
  "imap_header",
  "imap_headerinfo",
  "imap_headers",
  "imap_last_error",
  "imap_list",
  "imap_listmailbox",
  "imap_listscan",
  "imap_listsubscribed",
  "imap_lsub",
  "imap_mail",
  "imap_mailboxmsginfo",
  "imap_mail_compose",
  "imap_mail_copy",
  "imap_mail_move",
  "imap_mime_header_decode",
  "imap_msgno",
  "imap_num_msg",
  "imap_num_recent",
  "imap_open",
  "imap_ping",
  "imap_qprint",
  "imap_renamemailbox",
  "imap_reopen",
  "imap_rfc822_parse_adrlist",
  "imap_rfc822_parse_headers",
  "imap_rfc822_write_address",
  "imap_scanmailbox",
  "imap_search",
  "imap_setacl",
  "imap_setflag_full",
  "imap_set_quota",
  "imap_sort",
  "imap_status",
  "imap_subscribe",
  "imap_thread",
  "imap_uid",
  "imap_undelete",
  "imap_unsubscribe",
  "imap_utf7_decode",
  "imap_utf7_encode",
  "imap_utf8",
  "implements",
  "implode",
  "import_request_variables",
  "in_array",
  "include",
  "include_once",
  "info",
  "ingres_autocommit",
  "ingres_close",
  "ingres_commit",
  "ingres_connect",
  "ingres_fetch_array",
  "ingres_fetch_object",
  "ingres_fetch_row",
  "ingres_field_length",
  "ingres_field_name",
  "ingres_field_nullable",
  "ingres_field_precision",
  "ingres_field_scale",
  "ingres_field_type",
  "ingres_num_fields",
  "ingres_num_rows",
  "ingres_pconnect",
  "ingres_query",
  "ingres_rollback",
  "ini_alter",
  "ini_get",
  "ini_get_all",
  "ini_restore",
  "ini_set",
  "insert",
  "insertanchor",
  "insert_before",
  "insertcollection",
  "insertdocument",
  "int",
  "interface",
  "internal_subset",
  "intval",
  "ip2long",
  "iptcembed",
  "iptcparse",
  "ircg_channel_mode",
  "ircg_disconnect",
  "ircg_fetch_error_msg",
  "ircg_get_username",
  "ircg_html_encode",
  "ircg_ignore_add",
  "ircg_ignore_del",
  "ircg_is_conn_alive",
  "ircg_join",
  "ircg_kick",
  "ircg_lookup_format_messages",
  "ircg_msg",
  "ircg_nick",
  "ircg_nickname_escape",
  "ircg_nickname_unescape",
  "ircg_notice",
  "ircg_part",
  "ircg_pconnect",
  "ircg_register_format_messages",
  "ircg_set_current",
  "ircg_set_file",
  "ircg_set_on_die",
  "ircg_topic",
  "ircg_whois",
  "is_a",
  "is_array",
  "is_blank_node",
  "is_bool",
  "is_callable",
  "is_dir",
  "is_double",
  "is_executable",
  "is_file",
  "is_finite",
  "is_float",
  "is_infinite",
  "is_int",
  "is_integer",
  "is_link",
  "is_long",
  "is_nan",
  "is_null",
  "is_numeric",
  "is_object",
  "is_readable",
  "is_real",
  "is_resource",
  "is_scalar",
  "isset",
  "is_string",
  "is_subclass_of",
  "is_uploaded_file",
  "is_writable",
  "is_writeable",
  "java_last_exception_clear",
  "java_last_exception_get",
  "jddayofweek",
  "jdmonthname",
  "jdtofrench",
  "jdtogregorian",
  "jdtojewish",
  "jdtojulian",
  "jdtounix",
  "jewishtojd",
  "join",
  "jpeg2wbmp",
  "juliantojd",
  "key",
  "krsort",
  "ksort",
  "langdepvalue",
  "last_child",
  "lcg_value",
  "ldap_8859_to_t61",
  "ldap_add",
  "ldap_bind",
  "ldap_close",
  "ldap_compare",
  "ldap_connect",
  "ldap_count_entries",
  "ldap_delete",
  "ldap_dn2ufn",
  "ldap_err2str",
  "ldap_errno",
  "ldap_error",
  "ldap_explode_dn",
  "ldap_first_attribute",
  "ldap_first_entry",
  "ldap_first_reference",
  "ldap_free_result",
  "ldap_get_attributes",
  "ldap_get_dn",
  "ldap_get_entries",
  "ldap_get_option",
  "ldap_get_values",
  "ldap_get_values_len",
  "ldap_list",
  "ldap_mod_add",
  "ldap_mod_del",
  "ldap_modify",
  "ldap_mod_replace",
  "ldap_next_attribute",
  "ldap_next_entry",
  "ldap_next_reference",
  "ldap_parse_reference",
  "ldap_parse_result",
  "ldap_read",
  "ldap_rename",
  "ldap_search",
  "ldap_set_option",
  "ldap_set_rebind_proc",
  "ldap_sort",
  "ldap_start_tls",
  "ldap_t61_to_8859",
  "ldap_unbind",
  "levenshtein",
  "__LINE__",
  "link",
  "linkinfo",
  "list",
  "localeconv",
  "localtime",
  "lock",
  "log",
  "log10",
  "log1p",
  "long2ip",
  "lstat",
  "ltrim",
  "mail",
  "mailparse_determine_best_xfer_encoding",
  "mailparse_msg_create",
  "mailparse_msg_extract_part",
  "mailparse_msg_extract_part_file",
  "mailparse_msg_free",
  "mailparse_msg_get_part",
  "mailparse_msg_get_part_data",
  "mailparse_msg_get_structure",
  "mailparse_msg_parse",
  "mailparse_msg_parse_file",
  "mailparse_rfc822_parse_addresses",
  "mailparse_stream_encode",
  "mailparse_uudecode_all",
  "main",
  "max",
  "mb_convert_case",
  "mb_convert_encoding",
  "mb_convert_kana",
  "mb_convert_variables",
  "mb_decode_mimeheader",
  "mb_decode_numericentity",
  "mb_detect_encoding",
  "mb_detect_order",
  "mb_encode_mimeheader",
  "mb_encode_numericentity",
  "mb_ereg",
  "mb_eregi",
  "mb_eregi_replace",
  "mb_ereg_match",
  "mb_ereg_replace",
  "mb_ereg_search",
  "mb_ereg_search_getpos",
  "mb_ereg_search_getregs",
  "mb_ereg_search_init",
  "mb_ereg_search_pos",
  "mb_ereg_search_regs",
  "mb_ereg_search_setpos",
  "mb_get_info",
  "mb_http_input",
  "mb_http_output",
  "mb_internal_encoding",
  "mb_language",
  "mb_output_handler",
  "mb_parse_str",
  "mb_preferred_mime_name",
  "mb_regex_encoding",
  "mb_regex_set_options",
  "mb_send_mail",
  "mb_split",
  "mb_strcut",
  "mb_strimwidth",
  "mb_strlen",
  "mb_strpos",
  "mb_strrpos",
  "mb_strtolower",
  "mb_strtoupper",
  "mb_strwidth",
  "mb_substitute_character",
  "mb_substr",
  "mb_substr_count",
  "mcal_append_event",
  "mcal_close",
  "mcal_create_calendar",
  "mcal_date_compare",
  "mcal_date_valid",
  "mcal_day_of_week",
  "mcal_day_of_year",
  "mcal_days_in_month",
  "mcal_delete_calendar",
  "mcal_delete_event",
  "mcal_event_add_attribute",
  "mcal_event_init",
  "mcal_event_set_alarm",
  "mcal_event_set_category",
  "mcal_event_set_class",
  "mcal_event_set_description",
  "mcal_event_set_end",
  "mcal_event_set_recur_daily",
  "mcal_event_set_recur_monthly_mday",
  "mcal_event_set_recur_monthly_wday",
  "mcal_event_set_recur_none",
  "mcal_event_set_recur_weekly",
  "mcal_event_set_recur_yearly",
  "mcal_event_set_start",
  "mcal_event_set_title",
  "mcal_expunge",
  "mcal_fetch_current_stream_event",
  "mcal_fetch_event",
  "mcal_is_leap_year",
  "mcal_list_alarms",
  "mcal_list_events",
  "mcal_next_recurrence",
  "mcal_open",
  "mcal_popen",
  "mcal_rename_calendar",
  "mcal_reopen",
  "mcal_snooze",
  "mcal_store_event",
  "mcal_time_valid",
  "mcal_week_of_year",
  "mcrypt_cbc",
  "mcrypt_cfb",
  "mcrypt_create_iv",
  "mcrypt_decrypt",
  "mcrypt_ecb",
  "mcrypt_enc_get_algorithms_name",
  "mcrypt_enc_get_block_size",
  "mcrypt_enc_get_iv_size",
  "mcrypt_enc_get_key_size",
  "mcrypt_enc_get_modes_name",
  "mcrypt_enc_get_supported_key_sizes",
  "mcrypt_enc_is_block_algorithm",
  "mcrypt_enc_is_block_algorithm_mode",
  "mcrypt_enc_is_block_mode",
  "mcrypt_encrypt",
  "mcrypt_enc_self_test",
  "mcrypt_generic",
  "mcrypt_generic_deinit",
  "mcrypt_generic_end",
  "mcrypt_generic_init",
  "mcrypt_get_block_size",
  "mcrypt_get_cipher_name",
  "mcrypt_get_iv_size",
  "mcrypt_get_key_size",
  "mcrypt_list_algorithms",
  "mcrypt_list_modes",
  "mcrypt_module_close",
  "mcrypt_module_get_algo_block_size",
  "mcrypt_module_get_algo_key_size",
  "mcrypt_module_get_supported_key_sizes",
  "mcrypt_module_is_block_algorithm",
  "mcrypt_module_is_block_algorithm_mode",
  "mcrypt_module_is_block_mode",
  "mcrypt_module_open",
  "mcrypt_module_self_test",
  "mcrypt_ofb",
  "mcve_adduser",
  "mcve_adduserarg",
  "mcve_bt",
  "mcve_checkstatus",
  "mcve_chkpwd",
  "mcve_chngpwd",
  "mcve_completeauthorizations",
  "mcve_connect",
  "mcve_connectionerror",
  "mcve_deleteresponse",
  "mcve_deletetrans",
  "mcve_deleteusersetup",
  "mcve_deluser",
  "mcve_destroyconn",
  "mcve_destroyengine",
  "mcve_disableuser",
  "mcve_edituser",
  "mcve_enableuser",
  "mcve_force",
  "mcve_getcell",
  "mcve_getcellbynum",
  "mcve_getcommadelimited",
  "mcve_getheader",
  "mcve_getuserarg",
  "mcve_getuserparam",
  "mcve_gft",
  "mcve_gl",
  "mcve_gut",
  "mcve_initconn",
  "mcve_initengine",
  "mcve_initusersetup",
  "mcve_iscommadelimited",
  "mcve_liststats",
  "mcve_listusers",
  "mcve_maxconntimeout",
  "mcve_monitor",
  "mcve_numcolumns",
  "mcve_numrows",
  "mcve_override",
  "mcve_parsecommadelimited",
  "mcve_ping",
  "mcve_preauth",
  "mcve_preauthcompletion",
  "mcve_qc",
  "mcve_responseparam",
  "mcve_return",
  "mcve_returncode",
  "mcve_returnstatus",
  "mcve_sale",
  "mcve_setblocking",
  "mcve_setdropfile",
  "mcve_setip",
  "mcve_setssl",
  "mcve_settimeout",
  "mcve_settle",
  "mcve_text_avs",
  "mcve_text_code",
  "mcve_text_cv",
  "mcve_transactionauth",
  "mcve_transactionavs",
  "mcve_transactionbatch",
  "mcve_transactioncv",
  "mcve_transactionid",
  "mcve_transactionitem",
  "mcve_transactionssent",
  "mcve_transactiontext",
  "mcve_transinqueue",
  "mcve_transnew",
  "mcve_transparam",
  "mcve_transsend",
  "mcve_ub",
  "mcve_uwait",
  "mcve_verifyconnection",
  "mcve_verifysslcert",
  "mcve_void",
  "md5",
  "md5_file",
  "mdecrypt_generic",
  "memory_get_usage",
  "metaphone",
  "method_exists",
  "mhash",
  "mhash_count",
  "mhash_get_block_size",
  "mhash_get_hash_name",
  "mhash_keygen_s2k",
  "microtime",
  "mime_content_type",
  "mimetype",
  "min",
  "ming_setcubicthreshold",
  "ming_setscale",
  "ming_useswfversion",
  "mkdir",
  "mktime",
  "money_format",
  "move",
  "movePen",
  "movePenTo",
  "moveTo",
  "move_uploaded_file",
  "msession_connect",
  "msession_count",
  "msession_create",
  "msession_destroy",
  "msession_disconnect",
  "msession_find",
  "msession_get",
  "msession_get_array",
  "msession_getdata",
  "msession_inc",
  "msession_list",
  "msession_listvar",
  "msession_lock",
  "msession_plugin",
  "msession_randstr",
  "msession_set",
  "msession_set_array",
  "msession_setdata",
  "msession_timeout",
  "msession_uniq",
  "msession_unlock",
  "msg_get_queue",
  "msg_receive",
  "msg_remove_queue",
  "msg_send",
  "msg_set_queue",
  "msg_stat_queue",
  "msql",
  "msql_affected_rows",
  "msql_close",
  "msql_connect",
  "msql_create_db",
  "msql_createdb",
  "msql_data_seek",
  "msql_dbname",
  "msql_drop_db",
  "msql_dropdb",
  "msql_error",
  "msql_fetch_array",
  "msql_fetch_field",
  "msql_fetch_object",
  "msql_fetch_row",
  "msql_fieldflags",
  "msql_fieldlen",
  "msql_fieldname",
  "msql_field_seek",
  "msql_fieldtable",
  "msql_fieldtype",
  "msql_free_result",
  "msql_freeresult",
  "msql_list_dbs",
  "msql_listdbs",
  "msql_list_fields",
  "msql_listfields",
  "msql_list_tables",
  "msql_listtables",
  "msql_num_fields",
  "msql_numfields",
  "msql_num_rows",
  "msql_numrows",
  "msql_pconnect",
  "msql_query",
  "msql_regcase",
  "msql_result",
  "msql_select_db",
  "msql_selectdb",
  "msql_tablename",
  "mssql_bind",
  "mssql_close",
  "mssql_connect",
  "mssql_data_seek",
  "mssql_execute",
  "mssql_fetch_array",
  "mssql_fetch_assoc",
  "mssql_fetch_batch",
  "mssql_fetch_field",
  "mssql_fetch_object",
  "mssql_fetch_row",
  "mssql_field_length",
  "mssql_field_name",
  "mssql_field_seek",
  "mssql_field_type",
  "mssql_free_result",
  "mssql_free_statement",
  "mssql_get_last_message",
  "mssql_guid_string",
  "mssql_init",
  "mssql_min_error_severity",
  "mssql_min_message_severity",
  "mssql_next_result",
  "mssql_num_fields",
  "mssql_num_rows",
  "mssql_pconnect",
  "mssql_query",
  "mssql_result",
  "mssql_rows_affected",
  "mssql_select_db",
  "mt_getrandmax",
  "mt_rand",
  "mt_srand",
  "multColor",
  "muscat_close",
  "muscat_get",
  "muscat_give",
  "muscat_setup",
  "muscat_setup_net",
  "mysql_affected_rows",
  "mysql_change_user",
  "mysql_client_encoding",
  "mysql_close",
  "mysql_connect",
  "mysql_create_db",
  "mysql_data_seek",
  "mysql_db_name",
  "mysql_db_query",
  "mysql_drop_db",
  "mysql_errno",
  "mysql_error",
  "mysql_escape_string",
  "mysql_fetch_array",
  "mysql_fetch_assoc",
  "mysql_fetch_field",
  "mysql_fetch_lengths",
  "mysql_fetch_object",
  "mysql_fetch_row",
  "mysql_field_flags",
  "mysql_field_len",
  "mysql_field_name",
  "mysql_field_seek",
  "mysql_field_table",
  "mysql_field_type",
  "mysql_free_result",
  "mysql_get_client_info",
  "mysql_get_host_info",
  "mysql_get_proto_info",
  "mysql_get_server_info",
  "mysql_info",
  "mysql_insert_id",
  "mysql_list_dbs",
  "mysql_list_fields",
  "mysql_list_processes",
  "mysql_list_tables",
  "mysql_num_fields",
  "mysql_num_rows",
  "mysql_pconnect",
  "mysql_ping",
  "mysql_query",
  "mysql_real_escape_string",
  "mysql_result",
  "mysql_select_db",
  "mysql_stat",
  "mysql_tablename",
  "mysql_thread_id",
  "mysql_unbuffered_query",
  "name",
  "natcasesort",
  "natsort",
  "ncurses_addch",
  "ncurses_addchnstr",
  "ncurses_addchstr",
  "ncurses_addnstr",
  "ncurses_addstr",
  "ncurses_assume_default_colors",
  "ncurses_attroff",
  "ncurses_attron",
  "ncurses_attrset",
  "ncurses_baudrate",
  "ncurses_beep",
  "ncurses_bkgd",
  "ncurses_bkgdset",
  "ncurses_border",
  "ncurses_can_change_color",
  "ncurses_cbreak",
  "ncurses_clear",
  "ncurses_clrtobot",
  "ncurses_clrtoeol",
  "ncurses_color_set",
  "ncurses_curs_set",
  "ncurses_define_key",
  "ncurses_def_prog_mode",
  "ncurses_def_shell_mode",
  "ncurses_delay_output",
  "ncurses_delch",
  "ncurses_deleteln",
  "ncurses_delwin",
  "ncurses_doupdate",
  "ncurses_echo",
  "ncurses_echochar",
  "ncurses_end",
  "ncurses_erase",
  "ncurses_erasechar",
  "ncurses_filter",
  "ncurses_flash",
  "ncurses_flushinp",
  "ncurses_getch",
  "ncurses_getmouse",
  "ncurses_halfdelay",
  "ncurses_has_colors",
  "ncurses_has_ic",
  "ncurses_has_il",
  "ncurses_has_key",
  "ncurses_hline",
  "ncurses_inch",
  "ncurses_init",
  "ncurses_init_color",
  "ncurses_init_pair",
  "ncurses_insch",
  "ncurses_insdelln",
  "ncurses_insertln",
  "ncurses_insstr",
  "ncurses_instr",
  "ncurses_isendwin",
  "ncurses_keyok",
  "ncurses_killchar",
  "ncurses_longname",
  "ncurses_mouseinterval",
  "ncurses_mousemask",
  "ncurses_move",
  "ncurses_mvaddch",
  "ncurses_mvaddchnstr",
  "ncurses_mvaddchstr",
  "ncurses_mvaddnstr",
  "ncurses_mvaddstr",
  "ncurses_mvcur",
  "ncurses_mvdelch",
  "ncurses_mvgetch",
  "ncurses_mvhline",
  "ncurses_mvinch",
  "ncurses_mvvline",
  "ncurses_mvwaddstr",
  "ncurses_napms",
  "ncurses_newwin",
  "ncurses_nl",
  "ncurses_nocbreak",
  "ncurses_noecho",
  "ncurses_nonl",
  "ncurses_noqiflush",
  "ncurses_noraw",
  "ncurses_putp",
  "ncurses_qiflush",
  "ncurses_raw",
  "ncurses_refresh",
  "ncurses_resetty",
  "ncurses_savetty",
  "ncurses_scr_dump",
  "ncurses_scr_init",
  "ncurses_scrl",
  "ncurses_scr_restore",
  "ncurses_scr_set",
  "ncurses_slk_attr",
  "ncurses_slk_attroff",
  "ncurses_slk_attron",
  "ncurses_slk_attrset",
  "ncurses_slk_clear",
  "ncurses_slk_color",
  "ncurses_slk_init",
  "ncurses_slk_noutrefresh",
  "ncurses_slk_refresh",
  "ncurses_slk_restore",
  "ncurses_slk_touch",
  "ncurses_standend",
  "ncurses_standout",
  "ncurses_start_color",
  "ncurses_termattrs",
  "ncurses_termname",
  "ncurses_timeout",
  "ncurses_typeahead",
  "ncurses_ungetch",
  "ncurses_ungetmouse",
  "ncurses_use_default_colors",
  "ncurses_use_env",
  "ncurses_use_extended_names",
  "ncurses_vidattr",
  "ncurses_vline",
  "ncurses_wrefresh",
  "new",
  "next",
  "nextframe",
  "next_sibling",
  "ngettext",
  "nl2br",
  "nl_langinfo",
  "node_name",
  "node_type",
  "node_value",
  "notations",
  "notes_body",
  "notes_copy_db",
  "notes_create_db",
  "notes_create_note",
  "notes_drop_db",
  "notes_find_note",
  "notes_header_info",
  "notes_list_msgs",
  "notes_mark_read",
  "notes_mark_unread",
  "notes_nav_create",
  "notes_search",
  "notes_unread",
  "notes_version",
  "NULL",
  "number_format",
  "ob_clean",
  "ob_end_clean",
  "ob_end_flush",
  "ob_flush",
  "ob_get_contents",
  "ob_get_length",
  "ob_get_level",
  "ob_get_status",
  "ob_gzhandler",
  "ob_iconv_handler",
  "ob_implicit_flush",
  "object",
  "objectbyanchor",
  "ob_start",
  "ocibindbyname",
  "ocicancel",
  "OCICollAppend",
  "ocicollassign",
  "ocicollassignelem",
  "ocicollgetelem",
  "ocicollmax",
  "ocicollsize",
  "ocicolltrim",
  "ocicolumnisnull",
  "ocicolumnname",
  "ocicolumnprecision",
  "ocicolumnscale",
  "ocicolumnsize",
  "ocicolumntype",
  "ocicolumntyperaw",
  "ocicommit",
  "ocidefinebyname",
  "ocierror",
  "ociexecute",
  "ocifetch",
  "ocifetchinto",
  "ocifetchstatement",
  "ocifreecollection",
  "ocifreecursor",
  "OCIFreeDesc",
  "ocifreestatement",
  "ociinternaldebug",
  "ociloadlob",
  "ocilogoff",
  "ocilogon",
  "ocinewcollection",
  "ocinewcursor",
  "ocinewdescriptor",
  "ocinlogon",
  "ocinumcols",
  "ociparse",
  "ociplogon",
  "ociresult",
  "ocirollback",
  "ocirowcount",
  "ocisavelob",
  "ocisavelobfile",
  "ociserverversion",
  "ocisetprefetch",
  "ocistatementtype",
  "ociwritelobtofile",
  "octdec",
  "odbc_autocommit",
  "odbc_binmode",
  "odbc_close",
  "odbc_close_all",
  "odbc_columnprivileges",
  "odbc_columns",
  "odbc_commit",
  "odbc_connect",
  "odbc_cursor",
  "odbc_data_source",
  "odbc_do",
  "odbc_error",
  "odbc_errormsg",
  "odbc_exec",
  "odbc_execute",
  "odbc_fetch_array",
  "odbc_fetch_into",
  "odbc_fetch_object",
  "odbc_fetch_row",
  "odbc_field_len",
  "odbc_field_name",
  "odbc_field_num",
  "odbc_field_precision",
  "odbc_field_scale",
  "odbc_field_type",
  "odbc_foreignkeys",
  "odbc_free_result",
  "odbc_gettypeinfo",
  "odbc_longreadlen",
  "odbc_next_result",
  "odbc_num_fields",
  "odbc_num_rows",
  "odbc_pconnect",
  "odbc_prepare",
  "odbc_primarykeys",
  "odbc_procedurecolumns",
  "odbc_procedures",
  "odbc_result",
  "odbc_result_all",
  "odbc_rollback",
  "odbc_setoption",
  "odbc_specialcolumns",
  "odbc_statistics",
  "odbc_tableprivileges",
  "odbc_tables",
  "opendir",
  "openlog",
  "openssl_csr_export",
  "openssl_csr_export_to_file",
  "openssl_csr_new",
  "openssl_csr_sign",
  "openssl_error_string",
  "openssl_free_key",
  "openssl_get_privatekey",
  "openssl_get_publickey",
  "openssl_open",
  "openssl_pkcs7_decrypt",
  "openssl_pkcs7_encrypt",
  "openssl_pkcs7_sign",
  "openssl_pkcs7_verify",
  "openssl_pkey_export",
  "openssl_pkey_export_to_file",
  "openssl_pkey_get_private",
  "openssl_pkey_get_public",
  "openssl_pkey_new",
  "openssl_private_decrypt",
  "openssl_private_encrypt",
  "openssl_public_decrypt",
  "openssl_public_encrypt",
  "openssl_seal",
  "openssl_sign",
  "openssl_verify",
  "openssl_x509_check_private_key",
  "openssl_x509_checkpurpose",
  "openssl_x509_export",
  "openssl_x509_export_to_file",
  "openssl_x509_free",
  "openssl_x509_parse",
  "openssl_x509_read",
  "ora_bind",
  "ora_close",
  "ora_columnname",
  "ora_columnsize",
  "ora_columntype",
  "ora_commit",
  "ora_commitoff",
  "ora_commiton",
  "ora_do",
  "ora_error",
  "ora_errorcode",
  "ora_exec",
  "ora_fetch",
  "ora_fetch_into",
  "ora_getcolumn",
  "ora_logoff",
  "ora_logon",
  "ora_numcols",
  "ora_numrows",
  "ora_open",
  "ora_parse",
  "ora_plogon",
  "ora_rollback",
  "ord",
  "output",
  "overload",
  "ovrimos_close",
  "ovrimos_commit",
  "ovrimos_connect",
  "ovrimos_cursor",
  "ovrimos_exec",
  "ovrimos_execute",
  "ovrimos_fetch_into",
  "ovrimos_fetch_row",
  "ovrimos_field_len",
  "ovrimos_field_name",
  "ovrimos_field_num",
  "ovrimos_field_type",
  "ovrimos_free_result",
  "ovrimos_longreadlen",
  "ovrimos_num_fields",
  "ovrimos_num_rows",
  "ovrimos_prepare",
  "ovrimos_result",
  "ovrimos_result_all",
  "ovrimos_rollback",
  "owner_document",
  "pack",
  "parent_node",
  "parents",
  "parse_ini_file",
  "parse_str",
  "parse_url",
  "passthru",
  "pathinfo",
  "PATH_TRANSLATED",
  "pclose",
  "pcntl_exec",
  "pcntl_fork",
  "pcntl_signal",
  "pcntl_waitpid",
  "pcntl_wexitstatus",
  "pcntl_wifexited",
  "pcntl_wifsignaled",
  "pcntl_wifstopped",
  "pcntl_wstopsig",
  "pcntl_wtermsig",
  "pdf_add_annotation",
  "pdf_add_bookmark",
  "pdf_add_launchlink",
  "pdf_add_locallink",
  "pdf_add_note",
  "pdf_add_outline",
  "pdf_add_pdflink",
  "pdf_add_thumbnail",
  "pdf_add_weblink",
  "pdf_arc",
  "pdf_arcn",
  "pdf_attach_file",
  "pdf_begin_page",
  "pdf_begin_pattern",
  "pdf_begin_template",
  "pdf_circle",
  "pdf_clip",
  "pdf_close",
  "pdf_close_image",
  "pdf_closepath",
  "pdf_closepath_fill_stroke",
  "pdf_closepath_stroke",
  "pdf_close_pdi",
  "pdf_close_pdi_page",
  "pdf_concat",
  "pdf_continue_text",
  "pdf_curveto",
  "pdf_delete",
  "pdf_end_page",
  "pdf_endpath",
  "pdf_end_pattern",
  "pdf_end_template",
  "pdf_fill",
  "pdf_fill_stroke",
  "pdf_findfont",
  "pdf_get_buffer",
  "pdf_get_font",
  "pdf_get_fontname",
  "pdf_get_fontsize",
  "pdf_get_image_height",
  "pdf_get_image_width",
  "pdf_get_majorversion",
  "pdf_get_minorversion",
  "pdf_get_parameter",
  "pdf_get_pdi_parameter",
  "pdf_get_pdi_value",
  "pdf_get_value",
  "pdf_initgraphics",
  "pdf_lineto",
  "pdf_makespotcolor",
  "pdf_moveto",
  "pdf_new",
  "pdf_open",
  "pdf_open_CCITT",
  "pdf_open_file",
  "pdf_open_gif",
  "pdf_open_image",
  "pdf_open_image_file",
  "pdf_open_jpeg",
  "pdf_open_memory_image",
  "pdf_open_pdi",
  "pdf_open_pdi_page",
  "pdf_open_png",
  "pdf_open_tiff",
  "pdf_place_image",
  "pdf_place_pdi_page",
  "pdf_rect",
  "pdf_restore",
  "pdf_rotate",
  "pdf_save",
  "pdf_scale",
  "pdf_set_border_color",
  "pdf_set_border_dash",
  "pdf_set_border_style",
  "pdf_set_char_spacing",
  "pdf_setcolor",
  "pdf_setdash",
  "pdf_set_duration",
  "pdf_setflat",
  "pdf_set_font",
  "pdf_setfont",
  "pdf_setgray",
  "pdf_setgray_fill",
  "pdf_setgray_stroke",
  "pdf_set_horiz_scaling",
  "pdf_set_info",
  "pdf_set_info_author",
  "pdf_set_info_creator",
  "pdf_set_info_keywords",
  "pdf_set_info_subject",
  "pdf_set_info_title",
  "pdf_set_leading",
  "pdf_setlinecap",
  "pdf_setlinejoin",
  "pdf_setlinewidth",
  "pdf_setmatrix",
  "pdf_setmiterlimit",
  "pdf_set_parameter",
  "pdf_setpolydash",
  "pdf_setrgbcolor",
  "pdf_setrgbcolor_fill",
  "pdf_setrgbcolor_stroke",
  "pdf_set_text_matrix",
  "pdf_set_text_pos",
  "pdf_set_text_rendering",
  "pdf_set_text_rise",
  "pdf_set_value",
  "pdf_set_word_spacing",
  "pdf_show",
  "pdf_show_boxed",
  "pdf_show_xy",
  "pdf_skew",
  "pdf_stringwidth",
  "pdf_stroke",
  "pdf_translate",
  "PEAR_EXTENSION_DIR",
  "PEAR_INSTALL_DIR",
  "pfpro_cleanup",
  "pfpro_init",
  "pfpro_process",
  "pfpro_process_raw",
  "pfpro_version",
  "pfsockopen",
  "pg_affected_rows",
  "pg_cancel_query",
  "pg_client_encoding",
  "pg_close",
  "pg_connect",
  "pg_connection_busy",
  "pg_connection_reset",
  "pg_connection_status",
  "pg_convert",
  "pg_copy_from",
  "pg_copy_to",
  "pg_dbname",
  "pg_delete",
  "pg_end_copy",
  "pg_escape_bytea",
  "pg_escape_string",
  "pg_fetch_all",
  "pg_fetch_array",
  "pg_fetch_assoc",
  "pg_fetch_object",
  "pg_fetch_result",
  "pg_fetch_row",
  "pg_field_is_null",
  "pg_field_name",
  "pg_field_num",
  "pg_field_prtlen",
  "pg_field_size",
  "pg_field_type",
  "pg_free_result",
  "pg_get_notify",
  "pg_get_pid",
  "pg_get_result",
  "pg_host",
  "pg_insert",
  "pg_last_error",
  "pg_last_notice",
  "pg_last_oid",
  "pg_lo_close",
  "pg_lo_create",
  "pg_lo_export",
  "pg_lo_import",
  "pg_lo_open",
  "pg_lo_read",
  "pg_lo_read_all",
  "pg_lo_seek",
  "pg_lo_tell",
  "pg_lo_unlink",
  "pg_lo_write",
  "pg_meta_data",
  "pg_num_fields",
  "pg_num_rows",
  "pg_options",
  "pg_pconnect",
  "pg_ping",
  "pg_port",
  "pg_put_line",
  "pg_query",
  "pg_result_error",
  "pg_result_seek",
  "pg_result_status",
  "pg_select",
  "pg_send_query",
  "pg_set_client_encoding",
  "pg_trace",
  "pg_tty",
  "pg_unescape_bytea",
  "pg_untrace",
  "pg_update",
  "PHP_BINDIR",
  "PHP_CONFIG_FILE_PATH",
  "phpcredits",
  "PHP_DATADIR",
  "PHP_ERRMSG",
  "PHP_EXTENSION_DIR",
  "phpinfo",
  "php_ini_scanned_files",
  "PHP_LIBDIR",
  "PHP_LOCALSTATEDIR",
  "php_logo_guid",
  "PHP_OS",
  "PHP_OUTPUT_HANDLER_CONT",
  "PHP_OUTPUT_HANDLER_END",
  "PHP_OUTPUT_HANDLER_START",
  "php_sapi_name",
  "PHP_SELF",
  "PHP_SYSCONFDIR",
  "php_uname",
  "phpversion",
  "PHP_VERSION",
  "pi",
  "png2wbmp",
  "popen",
  "pos",
  "posix_ctermid",
  "posix_getcwd",
  "posix_getegid",
  "posix_geteuid",
  "posix_getgid",
  "posix_getgrgid",
  "posix_getgrnam",
  "posix_getgroups",
  "posix_getlogin",
  "posix_getpgid",
  "posix_getpgrp",
  "posix_getpid",
  "posix_getppid",
  "posix_getpwnam",
  "posix_getpwuid",
  "posix_getrlimit",
  "posix_getsid",
  "posix_getuid",
  "posix_isatty",
  "posix_kill",
  "posix_mkfifo",
  "posix_setegid",
  "posix_seteuid",
  "posix_setgid",
  "posix_setpgid",
  "posix_setsid",
  "posix_setuid",
  "posix_times",
  "posix_ttyname",
  "posix_uname",
  "_POST",
  "pow",
  "prefix",
  "preg_grep",
  "preg_match",
  "preg_match_all",
  "preg_quote",
  "preg_replace",
  "preg_replace_callback",
  "preg_split",
  "prev",
  "previous_sibling",
  "print",
  "printer_abort",
  "printer_close",
  "printer_create_brush",
  "printer_create_dc",
  "printer_create_font",
  "printer_create_pen",
  "printer_delete_brush",
  "printer_delete_dc",
  "printer_delete_font",
  "printer_delete_pen",
  "printer_draw_bmp",
  "printer_draw_chord",
  "printer_draw_elipse",
  "printer_draw_line",
  "printer_draw_pie",
  "printer_draw_rectangle",
  "printer_draw_roundrect",
  "printer_draw_text",
  "printer_end_doc",
  "printer_end_page",
  "printer_get_option",
  "printer_list",
  "printer_logical_fontheight",
  "printer_open",
  "printer_select_brush",
  "printer_select_font",
  "printer_select_pen",
  "printer_set_option",
  "printer_start_doc",
  "printer_start_page",
  "printer_write",
  "printf",
  "print_r",
  "private",
  "proc_close",
  "process",
  "proc_open",
  "protected",
  "pspell_add_to_personal",
  "pspell_add_to_session",
  "pspell_check",
  "pspell_clear_session",
  "pspell_config_create",
  "pspell_config_ignore",
  "pspell_config_mode",
  "pspell_config_personal",
  "pspell_config_repl",
  "pspell_config_runtogether",
  "pspell_config_save_repl",
  "pspell_new",
  "pspell_new_config",
  "pspell_new_personal",
  "pspell_save_wordlist",
  "pspell_store_replacement",
  "pspell_suggest",
  "public",
  "public_id",
  "putenv",
  "qdom_error",
  "qdom_tree",
  "QUERY_STRING",
  "quoted_printable_decode",
  "quotemeta",
  "rad2deg",
  "rand",
  "range",
  "rawurldecode",
  "rawurlencode",
  "read",
  "readdir",
  "read_exif_data",
  "readfile",
  "readgzfile",
  "readline",
  "readline_add_history",
  "readline_clear_history",
  "readline_completion_function",
  "readline_info",
  "readline_list_history",
  "readline_read_history",
  "readline_write_history",
  "readlink",
  "realpath",
  "reason",
  "recode",
  "recode_file",
  "recode_string",
  "register_shutdown_function",
  "register_tick_function",
  "REMOTE_ADDR",
  "REMOTE_PORT",
  "remove",
  "remove_attribute",
  "remove_child",
  "rename",
  "replace",
  "replace_child",
  "replace_node",
  "_REQUEST",
  "REQUEST_METHOD",
  "REQUEST_URI",
  "require",
  "require_once",
  "reset",
  "restore_error_handler",
  "restore_include_path",
  "result_dump_file",
  "result_dump_mem",
  "return",
  "rewind",
  "rewinddir",
  "rmdir",
  "Rotate",
  "rotateTo",
  "round",
  "rsort",
  "rtrim",
  "save",
  "scale",
  "scaleTo",
  "SCRIPT_FILENAME",
  "SCRIPT_NAME",
  "sem_acquire",
  "sem_get",
  "sem_release",
  "sem_remove",
  "serialize",
  "_SERVER",
  "SERVER_ADMIN",
  "SERVER_NAME",
  "SERVER_PORT",
  "SERVER_PROTOCOL",
  "SERVER_SIGNATURE",
  "SERVER_SOFTWARE",
  "sesam_affected_rows",
  "sesam_commit",
  "sesam_connect",
  "sesam_diagnostic",
  "sesam_disconnect",
  "sesam_errormsg",
  "sesam_execimm",
  "sesam_fetch_array",
  "sesam_fetch_result",
  "sesam_fetch_row",
  "sesam_field_array",
  "sesam_field_name",
  "sesam_free_result",
  "sesam_num_fields",
  "sesam_query",
  "sesam_rollback",
  "sesam_seek_row",
  "sesam_settransaction",
  "_SESSION",
  "session_cache_expire",
  "session_cache_limiter",
  "session_decode",
  "session_destroy",
  "session_encode",
  "session_get_cookie_params",
  "session_id",
  "session_is_registered",
  "session_module_name",
  "session_name",
  "session_readonly",
  "session_register",
  "session_save_path",
  "session_set_cookie_params",
  "session_set_save_handler",
  "session_start",
  "session_unregister",
  "session_unset",
  "session_write_close",
  "setAction",
  "set_attribute",
  "setbackground",
  "setbounds",
  "setcolor",
  "setColor",
  "setcommitedversion",
  "set_content",
  "setcookie",
  "setDepth",
  "setdimension",
  "setdown",
  "set_error_handler",
  "set_file_buffer",
  "setFont",
  "setframes",
  "setHeight",
  "setHit",
  "set_include_path",
  "setindentation",
  "setLeftFill",
  "setLeftMargin",
  "setLine",
  "setLineSpacing",
  "setlocale",
  "set_magic_quotes_runtime",
  "setMargins",
  "set_name",
  "setname",
  "setName",
  "set_namespace",
  "setOver",
  "setrate",
  "setRatio",
  "setRightFill",
  "setrightMargin",
  "setSpacing",
  "set_time_limit",
  "settype",
  "setUp",
  "sha1",
  "sha1_file",
  "shell_exec",
  "shm_attach",
  "shm_detach",
  "shm_get_var",
  "shmop_close",
  "shmop_delete",
  "shmop_open",
  "shmop_read",
  "shmop_size",
  "shmop_write",
  "shm_put_var",
  "shm_remove",
  "shm_remove_var",
  "show_source",
  "shuffle",
  "similar_text",
  "sin",
  "sinh",
  "sizeof",
  "skewX",
  "skewXTo",
  "skewY",
  "skewYTo",
  "sleep",
  "snmpget",
  "snmp_get_quick_print",
  "snmprealwalk",
  "snmpset",
  "snmp_set_quick_print",
  "snmpwalk",
  "snmpwalkoid",
  "socket_accept",
  "socket_bind",
  "socket_clear_error",
  "socket_close",
  "socket_connect",
  "socket_create",
  "socket_create_listen",
  "socket_create_pair",
  "socket_get_option",
  "socket_getpeername",
  "socket_getsockname",
  "socket_get_status",
  "socket_iovec_add",
  "socket_iovec_alloc",
  "socket_iovec_delete",
  "socket_iovec_fetch",
  "socket_iovec_free",
  "socket_iovec_set",
  "socket_last_error",
  "socket_listen",
  "socket_read",
  "socket_readv",
  "socket_recv",
  "socket_recvfrom",
  "socket_recvmsg",
  "socket_select",
  "socket_send",
  "socket_sendmsg",
  "socket_sendto",
  "socket_set_blocking",
  "socket_set_nonblock",
  "socket_set_option",
  "socket_set_timeout",
  "socket_shutdown",
  "socket_strerror",
  "socket_write",
  "socket_writev",
  "sort",
  "soundex",
  "specified",
  "split",
  "spliti",
  "sprintf",
  "sql_regcase",
  "sqrt",
  "srand",
  "srcanchors",
  "srcsofdst",
  "sscanf",
  "stat",
  "static",
  "stdClass",
  "strcasecmp",
  "strchr",
  "strcmp",
  "strcoll",
  "strcspn",
  "stream_context_create",
  "stream_context_get_options",
  "stream_context_set_option",
  "stream_context_set_params",
  "stream_filter_append",
  "stream_filter_prepend",
  "stream_get_filters",
  "stream_get_meta_data",
  "stream_get_wrappers",
  "streammp3",
  "stream_register_filter",
  "stream_register_wrapper",
  "stream_select",
  "stream_set_blocking",
  "stream_set_timeout",
  "stream_set_write_buffer",
  "strftime",
  "stripcslashes",
  "stripslashes",
  "strip_tags",
  "stristr",
  "strlen",
  "strnatcasecmp",
  "strnatcmp",
  "strncasecmp",
  "strncmp",
  "str_pad",
  "strpos",
  "strrchr",
  "str_repeat",
  "str_replace",
  "strrev",
  "str_rot13",
  "strrpos",
  "str_shuffle",
  "strspn",
  "strstr",
  "strtok",
  "strtolower",
  "strtotime",
  "strtoupper",
  "strtr",
  "strval",
  "str_word_count",
  "substr",
  "substr_count",
  "substr_replace",
  "SWFAction",
  "swf_actiongeturl",
  "swf_actiongotoframe",
  "swf_actiongotolabel",
  "swf_actionnextframe",
  "swf_actionplay",
  "swf_actionprevframe",
  "swf_actionsettarget",
  "swf_actionstop",
  "swf_actiontogglequality",
  "swf_actionwaitforframe",
  "swf_addbuttonrecord",
  "swf_addcolor",
  "SWFBitmap",
  "SWFbutton",
  "swfbutton_keypress",
  "swf_closefile",
  "swf_definebitmap",
  "swf_definefont",
  "swf_defineline",
  "swf_definepoly",
  "swf_definerect",
  "swf_definetext",
  "SWFDisplayItem",
  "swf_endbutton",
  "swf_enddoaction",
  "swf_endshape",
  "swf_endsymbol",
  "SWFFill",
  "SWFFont",
  "swf_fontsize",
  "swf_fontslant",
  "swf_fonttracking",
  "swf_getbitmapinfo",
  "swf_getfontinfo",
  "swf_getframe",
  "SWFGradient",
  "swf_labelframe",
  "swf_lookat",
  "swf_modifyobject",
  "SWFMorph",
  "SWFMovie",
  "swf_mulcolor",
  "swf_nextid",
  "swf_oncondition",
  "swf_openfile",
  "swf_ortho",
  "swf_ortho2",
  "swf_perspective",
  "swf_placeobject",
  "swf_polarview",
  "swf_popmatrix",
  "swf_posround",
  "swf_pushmatrix",
  "swf_removeobject",
  "swf_rotate",
  "swf_scale",
  "swf_setfont",
  "swf_setframe",
  "SWFShape",
  "swf_shapearc",
  "swf_shapecurveto",
  "swf_shapecurveto3",
  "swf_shapefillbitmapclip",
  "swf_shapefillbitmaptile",
  "swf_shapefilloff",
  "swf_shapefillsolid",
  "swf_shapelinesolid",
  "swf_shapelineto",
  "swf_shapemoveto",
  "swf_showframe",
  "SWFSprite",
  "swf_startbutton",
  "swf_startdoaction",
  "swf_startshape",
  "swf_startsymbol",
  "SWFText",
  "SWFTextField",
  "swf_textwidth",
  "swf_translate",
  "swf_viewport",
  "switch",
  "sybase_affected_rows",
  "sybase_close",
  "sybase_connect",
  "sybase_data_seek",
  "sybase_fetch_array",
  "sybase_fetch_field",
  "sybase_fetch_object",
  "sybase_fetch_row",
  "sybase_field_seek",
  "sybase_free_result",
  "sybase_get_last_message",
  "sybase_min_client_severity",
  "sybase_min_error_severity",
  "sybase_min_message_severity",
  "sybase_min_server_severity",
  "sybase_num_fields",
  "sybase_num_rows",
  "sybase_pconnect",
  "sybase_query",
  "sybase_result",
  "sybase_select_db",
  "symlink",
  "syslog",
  "system",
  "system_id",
  "tagname",
  "tan",
  "tanh",
  "target",
  "tempnam",
  "textdomain",
  "time",
  "title",
  "tmpfile",
  "token_get_all",
  "token_name",
  "touch",
  "trigger_error",
  "trim",
  "TRUE",
  "type",
  "uasort",
  "ucfirst",
  "ucwords",
  "udm_add_search_limit",
  "udm_alloc_agent",
  "udm_api_version",
  "udm_cat_list",
  "udm_cat_path",
  "udm_check_charset",
  "udm_check_stored",
  "udm_clear_search_limits",
  "udm_close_stored",
  "udm_crc32",
  "udm_errno",
  "udm_error",
  "udm_find",
  "udm_free_agent",
  "udm_free_ispell_data",
  "udm_free_res",
  "udm_get_doc_count",
  "udm_get_res_field",
  "udm_get_res_param",
  "udm_load_ispell_data",
  "udm_open_stored",
  "udm_set_agent_param",
  "uksort",
  "umask",
  "uniqid",
  "unixtojd",
  "unlink",
  "unlink_node",
  "unlock",
  "unpack",
  "unregister_tick_function",
  "unserialize",
  "unset",
  "urldecode",
  "urlencode",
  "user",
  "user_error",
  "userlist",
  "usleep",
  "usort",
  "utf8_decode",
  "utf8_encode",
  "value",
  "values",
  "var",
  "var_dump",
  "var_export",
  "version_compare",
  "virtual",
  "vpopmail_add_alias_domain",
  "vpopmail_add_alias_domain_ex",
  "vpopmail_add_domain",
  "vpopmail_add_domain_ex",
  "vpopmail_add_user",
  "vpopmail_alias_add",
  "vpopmail_alias_del",
  "vpopmail_alias_del_domain",
  "vpopmail_alias_get",
  "vpopmail_alias_get_all",
  "vpopmail_auth_user",
  "vpopmail_del_domain",
  "vpopmail_del_domain_ex",
  "vpopmail_del_user",
  "vpopmail_error",
  "vpopmail_passwd",
  "vpopmail_set_user_quota",
  "vprintf",
  "vsprintf",
  "w32api_deftype",
  "w32api_init_dtype",
  "w32api_invoke_function",
  "w32api_register_function",
  "w32api_set_call_method",
  "wddx_add_vars",
  "wddx_deserialize",
  "wddx_packet_end",
  "wddx_packet_start",
  "wddx_serialize_value",
  "wddx_serialize_vars",
  "while",
  "wordwrap",
  "xinclude",
  "xml_error_string",
  "xml_get_current_byte_index",
  "xml_get_current_column_number",
  "xml_get_current_line_number",
  "xml_get_error_code",
  "xml_parse",
  "xml_parse_into_struct",
  "xml_parser_create",
  "xml_parser_create_ns",
  "xml_parser_free",
  "xml_parser_get_option",
  "xml_parser_set_option",
  "xmlrpc_decode",
  "xmlrpc_decode_request",
  "xmlrpc_encode",
  "xmlrpc_encode_request",
  "xmlrpc_get_type",
  "xmlrpc_parse_method_descriptions",
  "xmlrpc_server_add_introspection_data",
  "xmlrpc_server_call_method",
  "xmlrpc_server_create",
  "xmlrpc_server_destroy",
  "xmlrpc_server_register_introspection_callback",
  "xmlrpc_server_register_method",
  "xmlrpc_set_type",
  "xml_set_character_data_handler",
  "xml_set_default_handler",
  "xml_set_element_handler",
  "xml_set_end_namespace_decl_handler",
  "xml_set_external_entity_ref_handler",
  "xml_set_notation_decl_handler",
  "xml_set_object",
  "xml_set_processing_instruction_handler",
  "xml_set_start_namespace_decl_handler",
  "xml_set_unparsed_entity_decl_handler",
  "xpath_eval",
  "xpath_eval_expression",
  "xpath_new_context",
  "xptr_eval",
  "xptr_new_context",
  "xslt_create",
  "xslt_errno",
  "xslt_error",
  "xslt_free",
  "xslt_output_process",
  "xslt_set_base",
  "xslt_set_encoding",
  "xslt_set_error_handler",
  "xslt_set_log",
  "xslt_set_sax_handler",
  "xslt_set_sax_handlers",
  "xslt_set_scheme_handler",
  "xslt_set_scheme_handlers",
  "yaz_addinfo",
  "yaz_ccl_conf",
  "yaz_ccl_parse",
  "yaz_close",
  "yaz_connect",
  "yaz_database",
  "yaz_element",
  "yaz_errno",
  "yaz_error",
  "yaz_get_option",
  "yaz_hits",
  "yaz_itemorder",
  "yaz_present",
  "yaz_range",
  "yaz_record",
  "yaz_scan",
  "yaz_scan_result",
  "yaz_schema",
  "yaz_search",
  "yaz_set_option",
  "yaz_sort",
  "yaz_syntax",
  "yaz_wait",
  "yp_all",
  "yp_cat",
  "yp_errno",
  "yp_err_string",
  "yp_first",
  "yp_get_default_domain",
  "yp_master",
  "yp_match",
  "yp_next",
  "yp_order",
  "zend_logo_guid",
  "zend_version",
  "zend_version",
  "zip_close",
  "zip_entry_close",
  "zip_entry_compressedsize",
  "zip_entry_compressionmethod",
  "zip_entry_filesize",
  "zip_entry_name",
  "zip_entry_open",
  "zip_entry_read",
  "zip_open",
  "zip_read",
  0
};

Php5Writer::Php5Writer( UMLDoc *parent, const char *name )
	:SimpleCodeGenerator( parent, name) {
}

Php5Writer::~Php5Writer() {}


void Php5Writer::writeClass(UMLClassifier *c) {
	if(!c) {
		kdDebug()<<"Cannot write class of NULL concept!" << endl;
		return;
	}

	QString classname = cleanName(c->getName());
	QString fileName = c->getName().lower();

	//find an appropriate name for our file
	fileName = findFileName(c,".php");
	if (!fileName) {
		emit codeGenerated(c, false);
		return;
	}

	QFile filephp;
	if(!openFile(filephp,fileName+".php")) {
		emit codeGenerated(c, false);
		return;
	}
	QTextStream php(&filephp);

	//////////////////////////////
	//Start generating the code!!
	/////////////////////////////


	//try to find a heading file (license, coments, etc)
	QString str;
	str = getHeadingFile(".php");
	if(!str.isEmpty()) {
		str.replace(QRegExp("%filename%"),fileName+".php");
		str.replace(QRegExp("%filepath%"),filephp.name());
		php<<str<<m_endl;
	}


	//write includes
	UMLClassifierList includes;
	findObjectsRelated(c,includes);
	UMLClassifier *conc;
	for(conc = includes.first(); conc ;conc = includes.next()) {
		QString headerName = findFileName(conc, ".php");
		if (headerName.isEmpty()) {
			php << "include '" << findFileName(conc,".php") << ".php\';" << m_endl;
		}
	}
	php << m_endl;

	//Write class Documentation if there is somthing or if force option
	if(forceDoc() || !c->getDoc().isEmpty()) {
		php << m_endl << "/**" << m_endl;
		php << " * class " << classname << m_endl;
		php << formatDoc(c->getDoc()," * ");
		php << " */" << m_endl ;
	}

	UMLClassifierList superclasses = c->getSuperClasses();
	UMLAssociationList aggregations = c->getAggregations();
	UMLAssociationList compositions = c->getCompositions();
	UMLAssociationList realizations = c->getRealizations();
	UMLAssociation *a;
	bool isInterface = dynamic_cast<UMLInterface*>(c) ? true : false;

	//check if it is an interface or regular class
	if(isInterface) {
	  php << "interface " << classname;
	} else {
	  //check if class is abstract and / or has abstract methods
	  if(c->getAbstract())
	    php << "abstract ";
	  php << "class " << classname << (superclasses.count() > 0 ? " extends ":"");
	  if(superclasses.count() > 0) {
	    //php5 does not support multiple inheritance so only use the first one and print a warning if more are used
	    UMLClassifier *obj = superclasses.first();
	    php << cleanName(obj->getName());
	    if(superclasses.count() > 1)
		php << m_indentation << "//WARNING: PHP5 does not support multiple inheritance but there is more than 1 superclass defined in your UML model!";
	  }
	  //check for realizations
	  if( !realizations.isEmpty()) {
	    int rc = realizations.count();
	    int ri = rc;
	    for (a = realizations.first(); a; a = realizations.next()) {
		UMLObject *o = a->getObject(Uml::B);
		QString typeName = cleanName(o->getName());
		if(ri == rc)
		  php << m_endl << m_indentation << m_indentation << m_indentation <<  "implements ";
	      php << typeName << (--rc == 0 ? "" : ", ");
	    }
	  }
	}
	php<< m_endl << "{" << m_endl;

	//associations
	if( forceSections() || !aggregations.isEmpty()) {
		php<< m_endl << m_indentation << "/** Aggregations: */" << m_endl;
		for (a = aggregations.first(); a; a = aggregations.next()) {
			php<< m_endl;
			//maybe we should parse the string here and take multiplicity into account to decide
			//which container to use.
			UMLObject *o = a->getObject(Uml::A);
			if (o == NULL) {
				kdError() << "aggregation role A object is NULL" << endl;
				continue;
			}
			QString typeName = cleanName(o->getName());
			if (a->getMulti(Uml::A).isEmpty())  {
			  php << m_indentation << "var $m_" << ";" << m_endl;
			} else {
			  php << m_indentation << "var $m_" << "Vector = array();" << m_endl;
			}
		}//end for
	}

	if( forceSections() || !compositions.isEmpty()) {
		php<< m_endl << m_indentation << "/** Compositions: */" << m_endl;
		for (a = compositions.first(); a ; a = compositions.next()) {
			// see comment on Aggregation about multiplicity...
			UMLObject *o = a->getObject(Uml::A);
			if (o == NULL) {
				kdError() << "composition role A object is NULL" << endl;
				continue;
			}
			QString typeName = cleanName(o->getName());
			if (a->getMulti(Uml::A).isEmpty())  {
				php << m_indentation << "var $m_" << ";" << m_endl;
			} else {
				php << m_indentation << "var $m_" << "Vector = array();" << m_endl;
			}
		}
	}

	UMLClass * myClass = dynamic_cast<UMLClass *>(c);

	//attributes
	if(myClass)
		writeAttributes(myClass, php);

	//operations
	writeOperations(c,php);

	php << m_endl;

	//finish file
	php <<  m_endl << "} // end of " << classname << m_endl;
	php << "?>" << m_endl;

	//close files and notfiy we are done
	filephp.close();
	emit codeGenerated(c, true);
}

////////////////////////////////////////////////////////////////////////////////////
//  Helper Methods

void Php5Writer::writeOperations(UMLClassifier *c, QTextStream &php) {

	//Lists to store operations  sorted by scope
	UMLOperationList oppub,opprot,oppriv;

	bool isInterface = dynamic_cast<UMLInterface*>(c) ? true : false;

	oppub.setAutoDelete(false);
	opprot.setAutoDelete(false);
	oppriv.setAutoDelete(false);

	//sort operations by scope first and see if there are abstract methods
	UMLOperationList opl(c->getOpList());
	for(UMLOperation *op = opl.first(); op ; op = opl.next()) {
		switch(op->getScope()) {
			case Uml::Public:
				oppub.append(op);
				break;
			case Uml::Protected:
				opprot.append(op);
				break;
			case Uml::Private:
				oppriv.append(op);
				break;
		}
	}

	QString classname(cleanName(c->getName()));

	//write operations to file
	if(forceSections() || !oppub.isEmpty()) {
		php << m_endl;
		writeOperations(classname,oppub,php,isInterface);
	}

	if(forceSections() || !opprot.isEmpty()) {
		php << m_endl;
		writeOperations(classname,opprot,php,isInterface);
	}

	if(forceSections() || !oppriv.isEmpty()) {
		php << m_endl;
		writeOperations(classname,oppriv,php,isInterface);
	}
}

void Php5Writer::writeOperations(QString /* classname */, UMLOperationList &opList, QTextStream &php, bool isInterface = false) {
	UMLOperation *op;
	UMLAttributeList *atl;
	UMLAttribute *at;

	for(op=opList.first(); op ; op=opList.next()) {
		atl = op -> getParmList();
		//write method doc if we have doc || if at least one of the params has doc
		bool writeDoc = forceDoc() || !op->getDoc().isEmpty();
		for(at = atl->first(); at ; at = atl -> next())
			writeDoc |= !at->getDoc().isEmpty();

		if( writeDoc )  //write method documentation
		{
			php <<m_indentation << "/**" << m_endl <<formatDoc(op->getDoc(),m_indentation + " * ");
			php << m_indentation << " *" << m_endl;

			for(at = atl->first(); at ; at = atl -> next())  //write parameter documentation
			{
				if(forceDoc() || !at->getDoc().isEmpty()) {
					php <<m_indentation << " * @param " + at->getTypeName() + " " + cleanName(at->getName());
					php << " " + formatDoc(at->getDoc(),"");
				}
			}//end for : write parameter documentation
			php << m_indentation << " * @return " << op->getTypeName() << m_endl;
			if (op->getAbstract()) php << m_indentation << " * @abstract" << m_endl;
			if (op->getStatic()) php << m_indentation << " * @static" << m_endl;
			switch(op->getScope()) {
				case Uml::Public:
					php << m_indentation << " * @access public" << m_endl;
					break;
				case Uml::Protected:
					php << m_indentation << " * @access protected" << m_endl;
					break;
				case Uml::Private:
					php << m_indentation << " * @access private" << m_endl;
					break;
			}
			php <<m_indentation << " */" << m_endl;
		}//end if : write method documentation

		php <<  m_indentation;
		if (op->getAbstract()) php << "abstract ";
		switch(op->getScope()) {
		case Uml::Public:
		  php << "public ";
		  break;
		case Uml::Protected:
		  php << "protected ";
		  break;
		case Uml::Private:
		  php << "private ";
		  break;
		}
		if (op->getStatic()) php << "static ";
		php << "function " << cleanName(op->getName()) << "(";

		int i= atl->count();
		int j=0;
		for( at = atl->first(); at ;at = atl->next(),j++) {
			php << " $" << cleanName(at->getName())
			<< (!(at->getInitialValue().isEmpty()) ?
			    (QString(" = ")+at->getInitialValue()) :
			    QString(""))
			<< ((j < i-1)?", ":"");
		}
		php <<" )";
		if(!isInterface && !op->getAbstract())
		  php << " {" << m_endl << m_indentation << m_indentation << m_endl << m_indentation << "} // end of member function " + cleanName(op->getName()) + m_endl;
		else
		  php << ";" + m_endl;
		php << m_endl;
	}//end for
}

void Php5Writer::writeAttributes(UMLClass *c, QTextStream &php) {
	UMLAttributeList  atpub, atprot, atpriv, atdefval;
	atpub.setAutoDelete(false);
	atprot.setAutoDelete(false);
	atpriv.setAutoDelete(false);
	atdefval.setAutoDelete(false);

	//sort attributes by scope and see if they have a default value
	UMLAttributeList atl = c->getAttributeList();
	UMLAttribute *at;
	for(at = atl.first(); at ; at = atl.next()) {
		if(!at->getInitialValue().isEmpty())
			atdefval.append(at);
		switch(at->getScope()) {
			case Uml::Public:
				atpub.append(at);
				break;
			case Uml::Protected:
				atprot.append(at);
				break;
			case Uml::Private:
				atpriv.append(at);
				break;
		}
	}

	if(forceSections() || atl.count())
		php<< m_endl << m_indentation << " /*** Attributes: ***/" << m_endl <<m_endl;

	if(forceSections() || atpub.count()) {
		writeAttributes(atpub,php);
	}

	if(forceSections() || atprot.count()) {
		writeAttributes(atprot,php);
	}

	if(forceSections() || atpriv.count()) {
		writeAttributes(atpriv,php);
	}
}


void Php5Writer::writeAttributes(UMLAttributeList &atList, QTextStream &php) {
	for (UMLAttribute *at = atList.first(); at ; at = atList.next()) {
	  bool isStatic = at->getStatic();
		if (forceDoc() || !at->getDoc().isEmpty()) {
			php << m_indentation << "/**" << m_endl << formatDoc(at->getDoc(), m_indentation + " * ");
			if(isStatic) php << m_indentation << " * @static" << m_endl;
			switch(at->getScope()) {
				case Uml::Public:
					php << m_indentation << " * @access public" << m_endl;
					break;
				case Uml::Protected:
					php << m_indentation << " * @access protected" << m_endl;
					break;
				case Uml::Private:
					php << m_indentation << " * @access private" << m_endl;
					break;
			}
			php << m_indentation << " */" << m_endl;
		}
		php << m_indentation;
		switch(at->getScope()) {
		case Uml::Public:
		  php << "public ";
		  break;
		case Uml::Protected:
		  php << "protected ";
		  break;
		case Uml::Private:
		  php << "private ";
		  break;
		}
		if(isStatic) php << "static ";
		php << "$" << cleanName(at->getName());
		if(!at->getInitialValue().isEmpty())
		  php << " = " << at->getInitialValue();
		php << ";" << m_endl << m_endl;
	} // end for
	return;
}

/**
 * returns "PHP"
 */
QString Php5Writer::getLanguage() {
	return "PHP";
}

/**
 * checks whether type is "PhpWriter"
 *
 * @param type
 */
bool Php5Writer::isType (QString & type)
{
   if(type == "PhpWriter")
	return true;
   return false;
}

const QStringList Php5Writer::reservedKeywords() const {

  static QStringList keywords;

  if (keywords.isEmpty()) {
    for (int i = 0; words[i]; i++)
      keywords.append(words[i]);
  }

  return keywords;
}

#include "php5writer.moc"

