This might help someone who needs development information neatly compiled:
Official disabled_function list
php_uname,putenv,exec,phpinfo,system,passthru,escapeshellarg,escapeshellcmd,proc_close,proc_open,ini_alter,popen,pcntl_exec,socket_accept,socket_bind,socket_clear_error,socket_close,socket_connect,socket_create_listen,socket_create_pair,socket_create,socket_get_option,socket_getpeername,socket_getsockname,socket_last_error,socket_listen,socket_read,socket_recv,socket_recvfrom,socket_select,socket_send,socket_sendto,socket_set_block,socket_set_nonblock,socket_set_option,socket_shutdown,socket_strerror,socket_write,stream_socket_server,pfsockopen,disk_total_space,chown,diskfreespace,getrusage,get_current_user,set_time_limit,dl,listen,chgrp,link,symlink,proc_nice,proc_get_stats,proc_terminate,shell_exec,ssh2_exec,posix_getpwuid,posix_getgrgid,posix_kill,ini_restore,dbase_open,posix_mkfifo,sleep,imap_open,apache_child_terminate,apache_get_modules,apache_get_version,apache_getenv,apache_lookup_uri,apache_note,apache_request_headers,apache_response_headers,ini_get_all,apache_setenv,getallheaders,virtual,curl_multi_exec
Missing functions
- readline
- readline_info
- readline_add_history
- readline_clear_history
- readline_list_history
- readline_read_history
- readline_write_history
- readline_completion_function
- get_current_user
- ini_alter
- ini_restore
- exec
- system
- passthru
- escapeshellcmd
- escapeshellarg
- shell_exec
- proc_nice
- popen
- chown
- chgrp
- disk_total_space
- pfsockopen
- symlink
- link
- proc_open
- proc_close
- proc_terminate
- stream_socket_server
- sapi_windows_vt100_support
- sapi_windows_cp_set
- sapi_windows_cp_get
- sapi_windows_cp_conv
- sapi_windows_cp_is_utf8
- sapi_windows_set_ctrl_handler
- sapi_windows_generate_ctrl_event
- curl_multi_exec
- variant_set
- variant_add
- variant_cat
- variant_sub
- variant_mul
- variant_and
- variant_div
- variant_eqv
- variant_idiv
- variant_imp
- variant_mod
- variant_or
- variant_pow
- variant_xor
- variant_abs
- variant_fix
- variant_int
- variant_neg
- variant_not
- variant_round
- variant_cmp
- variant_date_to_timestamp
- variant_date_from_timestamp
- variant_get_type
- variant_set_type
- variant_cast
- com_get_active_object
- com_create_guid
- com_event_sink
- com_print_typeinfo
- com_message_pump
- com_load_typelib
- imagegrabwindow
- imagegrabscreen
- imap_open
- imap_reopen
- imap_close
- imap_num_msg
- imap_num_recent
- imap_headers
- imap_headerinfo
- imap_rfc822_parse_headers
- imap_rfc822_write_address
- imap_rfc822_parse_adrlist
- imap_body
- imap_fetchtext
- imap_bodystruct
- imap_fetchbody
- imap_fetchmime
- imap_savebody
- imap_fetchheader
- imap_fetchstructure
- imap_gc
- imap_expunge
- imap_delete
- imap_undelete
- imap_check
- imap_listscan
- imap_scan
- imap_scanmailbox
- imap_mail_copy
- imap_mail_move
- imap_mail_compose
- imap_createmailbox
- imap_create
- imap_renamemailbox
- imap_rename
- imap_deletemailbox
- imap_subscribe
- imap_unsubscribe
- imap_append
- imap_ping
- imap_base64
- imap_qprint
- imap_8bit
- imap_binary
- imap_utf8
- imap_status
- imap_mailboxmsginfo
- imap_setflag_full
- imap_clearflag_full
- imap_sort
- imap_uid
- imap_msgno
- imap_list
- imap_listmailbox
- imap_lsub
- imap_listsubscribed
- imap_getsubscribed
- imap_getmailboxes
- imap_fetch_overview
- imap_alerts
- imap_errors
- imap_last_error
- imap_search
- imap_utf7_decode
- imap_utf7_encode
- imap_utf8_to_mutf7
- imap_mutf7_to_utf8
- imap_mime_header_decode
- imap_thread
- imap_timeout
- imap_get_quota
- imap_get_quotaroot
- imap_set_quota
- imap_setacl
- imap_getacl
- imap_mail
- ldap_connect
- ldap_unbind
- ldap_close
- ldap_bind
- ldap_bind_ext
- ldap_sasl_bind
- ldap_read
- ldap_list
- ldap_search
- ldap_free_result
- ldap_count_entries
- ldap_first_entry
- ldap_next_entry
- ldap_get_entries
- ldap_first_attribute
- ldap_next_attribute
- ldap_get_attributes
- ldap_get_values_len
- ldap_get_values
- ldap_get_dn
- ldap_explode_dn
- ldap_dn2ufn
- ldap_add
- ldap_add_ext
- ldap_delete
- ldap_delete_ext
- ldap_modify_batch
- ldap_mod_add
- ldap_mod_add_ext
- ldap_mod_replace
- ldap_modify
- ldap_mod_replace_ext
- ldap_mod_del
- ldap_mod_del_ext
- ldap_errno
- ldap_error
- ldap_err2str
- ldap_compare
- ldap_rename
- ldap_rename_ext
- ldap_get_option
- ldap_set_option
- ldap_count_references
- ldap_first_reference
- ldap_next_reference
- ldap_parse_reference
- ldap_parse_result
- ldap_start_tls
- ldap_escape
- ldap_exop
- ldap_exop_passwd
- ldap_exop_whoami
- ldap_exop_refresh
- ldap_parse_exop
- socket_select
- socket_create_listen
- socket_accept
- socket_set_nonblock
- socket_set_block
- socket_listen
- socket_close
- socket_write
- socket_read
- socket_getsockname
- socket_getpeername
- socket_create
- socket_connect
- socket_strerror
- socket_bind
- socket_recv
- socket_send
- socket_recvfrom
- socket_sendto
- socket_get_option
- socket_getopt
- socket_set_option
- socket_setopt
- socket_create_pair
- socket_shutdown
- socket_last_error
- socket_clear_error
- socket_import_stream
- socket_export_stream
- socket_sendmsg
- socket_recvmsg
- socket_cmsg_space
- socket_addrinfo_lookup
- socket_addrinfo_connect
- socket_addrinfo_bind
- socket_addrinfo_explain
- socket_wsaprotocol_info_export
- socket_wsaprotocol_info_import
- socket_wsaprotocol_info_release
- tidy_parse_string
- tidy_get_error_buffer
- tidy_get_output
- tidy_parse_file
- tidy_clean_repair
- tidy_repair_string
- tidy_repair_file
- tidy_diagnose
- tidy_get_release
- tidy_get_opt_doc
- tidy_get_config
- tidy_get_status
- tidy_get_html_ver
- tidy_is_xhtml
- tidy_is_xml
- tidy_error_count
- tidy_warning_count
- tidy_access_count
- tidy_config_count
- tidy_getopt
- tidy_get_root
- tidy_get_html
- tidy_get_head
- tidy_get_body
- dl
- cli_set_process_title
- cli_get_process_title
Missing constants
- NULL
- PHP_WINDOWS_EVENT_CTRL_C
- PHP_WINDOWS_EVENT_CTRL_BREAK
- PHP_WINDOWS_VERSION_MAJOR
- PHP_WINDOWS_VERSION_MINOR
- PHP_WINDOWS_VERSION_BUILD
- PHP_WINDOWS_VERSION_PLATFORM
- PHP_WINDOWS_VERSION_SP_MAJOR
- PHP_WINDOWS_VERSION_SP_MINOR
- PHP_WINDOWS_VERSION_SUITEMASK
- PHP_WINDOWS_VERSION_PRODUCTTYPE
- PHP_WINDOWS_NT_DOMAIN_CONTROLLER
- PHP_WINDOWS_NT_SERVER
- PHP_WINDOWS_NT_WORKSTATION
- READLINE_LIB
- CLSCTX_INPROC_SERVER
- CLSCTX_INPROC_HANDLER
- CLSCTX_LOCAL_SERVER
- CLSCTX_REMOTE_SERVER
- CLSCTX_SERVER
- CLSCTX_ALL
- VT_NULL
- VT_EMPTY
- VT_UI1
- VT_I1
- VT_UI2
- VT_I2
- VT_UI4
- VT_I4
- VT_R4
- VT_R8
- VT_BOOL
- VT_ERROR
- VT_CY
- VT_DATE
- VT_BSTR
- VT_DECIMAL
- VT_UNKNOWN
- VT_DISPATCH
- VT_VARIANT
- VT_INT
- VT_UINT
- VT_ARRAY
- VT_BYREF
- CP_ACP
- CP_MACCP
- CP_OEMCP
- CP_UTF7
- CP_UTF8
- CP_SYMBOL
- CP_THREAD_ACP
- VARCMP_LT
- VARCMP_EQ
- VARCMP_GT
- VARCMP_NULL
- LOCALE_SYSTEM_DEFAULT
- NORM_IGNORECASE
- NORM_IGNORENONSPACE
- NORM_IGNORESYMBOLS
- NORM_IGNOREWIDTH
- NORM_IGNOREKANATYPE
- DISP_E_DIVBYZERO
- DISP_E_OVERFLOW
- DISP_E_BADINDEX
- MK_E_UNAVAILABLE
- VT_UI8
- VT_I8
- GMP_MPIR_VERSION
- NIL
- IMAP_OPENTIMEOUT
- IMAP_READTIMEOUT
- IMAP_WRITETIMEOUT
- IMAP_CLOSETIMEOUT
- OP_DEBUG
- OP_READONLY
- OP_ANONYMOUS
- OP_SHORTCACHE
- OP_SILENT
- OP_PROTOTYPE
- OP_HALFOPEN
- OP_EXPUNGE
- OP_SECURE
- CL_EXPUNGE
- FT_UID
- FT_PEEK
- FT_NOT
- FT_INTERNAL
- FT_PREFETCHTEXT
- ST_UID
- ST_SILENT
- ST_SET
- CP_UID
- CP_MOVE
- SE_UID
- SE_FREE
- SE_NOPREFETCH
- SO_FREE
- SO_NOSERVER
- SA_MESSAGES
- SA_RECENT
- SA_UNSEEN
- SA_UIDNEXT
- SA_UIDVALIDITY
- SA_ALL
- LATT_NOINFERIORS
- LATT_NOSELECT
- LATT_MARKED
- LATT_UNMARKED
- LATT_REFERRAL
- LATT_HASCHILDREN
- LATT_HASNOCHILDREN
- SORTDATE
- SORTARRIVAL
- SORTFROM
- SORTSUBJECT
- SORTTO
- SORTCC
- SORTSIZE
- TYPETEXT
- TYPEMULTIPART
- TYPEMESSAGE
- TYPEAPPLICATION
- TYPEAUDIO
- TYPEIMAGE
- TYPEVIDEO
- TYPEMODEL
- TYPEOTHER
- ENC7BIT
- ENC8BIT
- ENCBINARY
- ENCBASE64
- ENCQUOTEDPRINTABLE
- ENCOTHER
- IMAP_GC_ELT
- IMAP_GC_ENV
- IMAP_GC_TEXTS
- LDAP_DEREF_NEVER
- LDAP_DEREF_SEARCHING
- LDAP_DEREF_FINDING
- LDAP_DEREF_ALWAYS
- LDAP_MODIFY_BATCH_ADD
- LDAP_MODIFY_BATCH_REMOVE
- LDAP_MODIFY_BATCH_REMOVE_ALL
- LDAP_MODIFY_BATCH_REPLACE
- LDAP_MODIFY_BATCH_ATTRIB
- LDAP_MODIFY_BATCH_MODTYPE
- LDAP_MODIFY_BATCH_VALUES
- LDAP_OPT_DEREF
- LDAP_OPT_SIZELIMIT
- LDAP_OPT_TIMELIMIT
- LDAP_OPT_NETWORK_TIMEOUT
- LDAP_OPT_TIMEOUT
- LDAP_OPT_PROTOCOL_VERSION
- LDAP_OPT_ERROR_NUMBER
- LDAP_OPT_REFERRALS
- LDAP_OPT_RESTART
- LDAP_OPT_HOST_NAME
- LDAP_OPT_ERROR_STRING
- LDAP_OPT_MATCHED_DN
- LDAP_OPT_SERVER_CONTROLS
- LDAP_OPT_CLIENT_CONTROLS
- LDAP_OPT_DEBUG_LEVEL
- LDAP_OPT_DIAGNOSTIC_MESSAGE
- LDAP_OPT_X_SASL_MECH
- LDAP_OPT_X_SASL_REALM
- LDAP_OPT_X_SASL_AUTHCID
- LDAP_OPT_X_SASL_AUTHZID
- LDAP_OPT_X_SASL_NOCANON
- LDAP_OPT_X_SASL_USERNAME
- LDAP_OPT_X_TLS_REQUIRE_CERT
- LDAP_OPT_X_TLS_NEVER
- LDAP_OPT_X_TLS_HARD
- LDAP_OPT_X_TLS_DEMAND
- LDAP_OPT_X_TLS_ALLOW
- LDAP_OPT_X_TLS_TRY
- LDAP_OPT_X_TLS_CACERTDIR
- LDAP_OPT_X_TLS_CACERTFILE
- LDAP_OPT_X_TLS_CERTFILE
- LDAP_OPT_X_TLS_CIPHER_SUITE
- LDAP_OPT_X_TLS_KEYFILE
- LDAP_OPT_X_TLS_RANDOM_FILE
- LDAP_OPT_X_TLS_CRLCHECK
- LDAP_OPT_X_TLS_CRL_NONE
- LDAP_OPT_X_TLS_CRL_PEER
- LDAP_OPT_X_TLS_CRL_ALL
- LDAP_OPT_X_TLS_DHFILE
- LDAP_OPT_X_TLS_CRLFILE
- LDAP_OPT_X_TLS_PROTOCOL_MIN
- LDAP_OPT_X_TLS_PROTOCOL_SSL2
- LDAP_OPT_X_TLS_PROTOCOL_SSL3
- LDAP_OPT_X_TLS_PROTOCOL_TLS1_0
- LDAP_OPT_X_TLS_PROTOCOL_TLS1_1
- LDAP_OPT_X_TLS_PROTOCOL_TLS1_2
- LDAP_OPT_X_TLS_PACKAGE
- LDAP_OPT_X_KEEPALIVE_IDLE
- LDAP_OPT_X_KEEPALIVE_PROBES
- LDAP_OPT_X_KEEPALIVE_INTERVAL
- LDAP_ESCAPE_FILTER
- LDAP_ESCAPE_DN
- LDAP_EXOP_START_TLS
- LDAP_EXOP_MODIFY_PASSWD
- LDAP_EXOP_REFRESH
- LDAP_EXOP_WHO_AM_I
- LDAP_EXOP_TURN
- LDAP_CONTROL_MANAGEDSAIT
- LDAP_CONTROL_PROXY_AUTHZ
- LDAP_CONTROL_SUBENTRIES
- LDAP_CONTROL_VALUESRETURNFILTER
- LDAP_CONTROL_ASSERT
- LDAP_CONTROL_PRE_READ
- LDAP_CONTROL_POST_READ
- LDAP_CONTROL_SORTREQUEST
- LDAP_CONTROL_SORTRESPONSE
- LDAP_CONTROL_PAGEDRESULTS
- LDAP_CONTROL_SYNC
- LDAP_CONTROL_SYNC_STATE
- LDAP_CONTROL_SYNC_DONE
- LDAP_CONTROL_DONTUSECOPY
- LDAP_CONTROL_PASSWORDPOLICYREQUEST
- LDAP_CONTROL_PASSWORDPOLICYRESPONSE
- LDAP_CONTROL_X_INCREMENTAL_VALUES
- LDAP_CONTROL_X_DOMAIN_SCOPE
- LDAP_CONTROL_X_PERMISSIVE_MODIFY
- LDAP_CONTROL_X_SEARCH_OPTIONS
- LDAP_CONTROL_X_TREE_DELETE
- LDAP_CONTROL_X_EXTENDED_DN
- LDAP_CONTROL_VLVREQUEST
- LDAP_CONTROL_VLVRESPONSE
- AF_UNIX
- AF_INET
- AF_INET6
- SOCK_STREAM
- SOCK_DGRAM
- SOCK_RAW
- SOCK_SEQPACKET
- SOCK_RDM
- MSG_OOB
- MSG_WAITALL
- MSG_CTRUNC
- MSG_TRUNC
- MSG_PEEK
- MSG_DONTROUTE
- MSG_ERRQUEUE
- SO_DEBUG
- SO_REUSEADDR
- SO_KEEPALIVE
- SO_DONTROUTE
- SO_LINGER
- SO_BROADCAST
- SO_OOBINLINE
- SO_SNDBUF
- SO_RCVBUF
- SO_SNDLOWAT
- SO_RCVLOWAT
- SO_SNDTIMEO
- SO_RCVTIMEO
- SO_TYPE
- SO_ERROR
- SOL_SOCKET
- SOMAXCONN
- TCP_NODELAY
- PHP_NORMAL_READ
- PHP_BINARY_READ
- MCAST_JOIN_GROUP
- MCAST_LEAVE_GROUP
- MCAST_BLOCK_SOURCE
- MCAST_UNBLOCK_SOURCE
- MCAST_JOIN_SOURCE_GROUP
- MCAST_LEAVE_SOURCE_GROUP
- IP_MULTICAST_IF
- IP_MULTICAST_TTL
- IP_MULTICAST_LOOP
- IPV6_MULTICAST_IF
- IPV6_MULTICAST_HOPS
- IPV6_MULTICAST_LOOP
- IPV6_V6ONLY
- SOCKET_EINTR
- SOCKET_EBADF
- SOCKET_EACCES
- SOCKET_EFAULT
- SOCKET_EINVAL
- SOCKET_EMFILE
- SOCKET_EWOULDBLOCK
- SOCKET_EINPROGRESS
- SOCKET_EALREADY
- SOCKET_ENOTSOCK
- SOCKET_EDESTADDRREQ
- SOCKET_EMSGSIZE
- SOCKET_EPROTOTYPE
- SOCKET_ENOPROTOOPT
- SOCKET_EPROTONOSUPPORT
- SOCKET_ESOCKTNOSUPPORT
- SOCKET_EOPNOTSUPP
- SOCKET_EPFNOSUPPORT
- SOCKET_EAFNOSUPPORT
- SOCKET_EADDRINUSE
- SOCKET_EADDRNOTAVAIL
- SOCKET_ENETDOWN
- SOCKET_ENETUNREACH
- SOCKET_ENETRESET
- SOCKET_ECONNABORTED
- SOCKET_ECONNRESET
- SOCKET_ENOBUFS
- SOCKET_EISCONN
- SOCKET_ENOTCONN
- SOCKET_ESHUTDOWN
- SOCKET_ETOOMANYREFS
- SOCKET_ETIMEDOUT
- SOCKET_ECONNREFUSED
- SOCKET_ELOOP
- SOCKET_ENAMETOOLONG
- SOCKET_EHOSTDOWN
- SOCKET_EHOSTUNREACH
- SOCKET_ENOTEMPTY
- SOCKET_EPROCLIM
- SOCKET_EUSERS
- SOCKET_EDQUOT
- SOCKET_ESTALE
- SOCKET_EREMOTE
- SOCKET_EDISCON
- SOCKET_SYSNOTREADY
- SOCKET_VERNOTSUPPORTED
- SOCKET_NOTINITIALISED
- SOCKET_HOST_NOT_FOUND
- SOCKET_TRY_AGAIN
- SOCKET_NO_RECOVERY
- SOCKET_NO_DATA
- SOCKET_NO_ADDRESS
- IPPROTO_IP
- IPPROTO_IPV6
- SOL_TCP
- SOL_UDP
- IPV6_UNICAST_HOPS
- AI_PASSIVE
- AI_CANONNAME
- AI_NUMERICHOST
- AI_ADDRCONFIG
- AI_NUMERICSERV
- IPV6_RECVPKTINFO
- IPV6_PKTINFO
- IPV6_RECVHOPLIMIT
- IPV6_HOPLIMIT
- IPV6_RECVTCLASS
- IPV6_TCLASS
- TIDY_TAG_UNKNOWN
- TIDY_TAG_A
- TIDY_TAG_ABBR
- TIDY_TAG_ACRONYM
- TIDY_TAG_ADDRESS
- TIDY_TAG_ALIGN
- TIDY_TAG_APPLET
- TIDY_TAG_AREA
- TIDY_TAG_B
- TIDY_TAG_BASE
- TIDY_TAG_BASEFONT
- TIDY_TAG_BDO
- TIDY_TAG_BGSOUND
- TIDY_TAG_BIG
- TIDY_TAG_BLINK
- TIDY_TAG_BLOCKQUOTE
- TIDY_TAG_BODY
- TIDY_TAG_BR
- TIDY_TAG_BUTTON
- TIDY_TAG_CAPTION
- TIDY_TAG_CENTER
- TIDY_TAG_CITE
- TIDY_TAG_CODE
- TIDY_TAG_COL
- TIDY_TAG_COLGROUP
- TIDY_TAG_COMMENT
- TIDY_TAG_DD
- TIDY_TAG_DEL
- TIDY_TAG_DFN
- TIDY_TAG_DIR
- TIDY_TAG_DIV
- TIDY_TAG_DL
- TIDY_TAG_DT
- TIDY_TAG_EM
- TIDY_TAG_EMBED
- TIDY_TAG_FIELDSET
- TIDY_TAG_FONT
- TIDY_TAG_FORM
- TIDY_TAG_FRAME
- TIDY_TAG_FRAMESET
- TIDY_TAG_H1
- TIDY_TAG_H2
- TIDY_TAG_H3
- TIDY_TAG_H4
- TIDY_TAG_H5
- TIDY_TAG_H6
- TIDY_TAG_HEAD
- TIDY_TAG_HR
- TIDY_TAG_HTML
- TIDY_TAG_I
- TIDY_TAG_IFRAME
- TIDY_TAG_ILAYER
- TIDY_TAG_IMG
- TIDY_TAG_INPUT
- TIDY_TAG_INS
- TIDY_TAG_ISINDEX
- TIDY_TAG_KBD
- TIDY_TAG_KEYGEN
- TIDY_TAG_LABEL
- TIDY_TAG_LAYER
- TIDY_TAG_LEGEND
- TIDY_TAG_LI
- TIDY_TAG_LINK
- TIDY_TAG_LISTING
- TIDY_TAG_MAP
- TIDY_TAG_MARQUEE
- TIDY_TAG_MENU
- TIDY_TAG_META
- TIDY_TAG_MULTICOL
- TIDY_TAG_NOBR
- TIDY_TAG_NOEMBED
- TIDY_TAG_NOFRAMES
- TIDY_TAG_NOLAYER
- TIDY_TAG_NOSAVE
- TIDY_TAG_NOSCRIPT
- TIDY_TAG_OBJECT
- TIDY_TAG_OL
- TIDY_TAG_OPTGROUP
- TIDY_TAG_OPTION
- TIDY_TAG_P
- TIDY_TAG_PARAM
- TIDY_TAG_PLAINTEXT
- TIDY_TAG_PRE
- TIDY_TAG_Q
- TIDY_TAG_RB
- TIDY_TAG_RBC
- TIDY_TAG_RP
- TIDY_TAG_RT
- TIDY_TAG_RTC
- TIDY_TAG_RUBY
- TIDY_TAG_S
- TIDY_TAG_SAMP
- TIDY_TAG_SCRIPT
- TIDY_TAG_SELECT
- TIDY_TAG_SERVER
- TIDY_TAG_SERVLET
- TIDY_TAG_SMALL
- TIDY_TAG_SPACER
- TIDY_TAG_SPAN
- TIDY_TAG_STRIKE
- TIDY_TAG_STRONG
- TIDY_TAG_STYLE
- TIDY_TAG_SUB
- TIDY_TAG_SUP
- TIDY_TAG_TABLE
- TIDY_TAG_TBODY
- TIDY_TAG_TD
- TIDY_TAG_TEXTAREA
- TIDY_TAG_TFOOT
- TIDY_TAG_TH
- TIDY_TAG_THEAD
- TIDY_TAG_TITLE
- TIDY_TAG_TR
- TIDY_TAG_TT
- TIDY_TAG_U
- TIDY_TAG_UL
- TIDY_TAG_VAR
- TIDY_TAG_WBR
- TIDY_TAG_XMP
- TIDY_TAG_ARTICLE
- TIDY_TAG_ASIDE
- TIDY_TAG_AUDIO
- TIDY_TAG_BDI
- TIDY_TAG_CANVAS
- TIDY_TAG_COMMAND
- TIDY_TAG_DATALIST
- TIDY_TAG_DETAILS
- TIDY_TAG_DIALOG
- TIDY_TAG_FIGCAPTION
- TIDY_TAG_FIGURE
- TIDY_TAG_FOOTER
- TIDY_TAG_HEADER
- TIDY_TAG_HGROUP
- TIDY_TAG_MAIN
- TIDY_TAG_MARK
- TIDY_TAG_MENUITEM
- TIDY_TAG_METER
- TIDY_TAG_NAV
- TIDY_TAG_OUTPUT
- TIDY_TAG_PROGRESS
- TIDY_TAG_SECTION
- TIDY_TAG_SOURCE
- TIDY_TAG_SUMMARY
- TIDY_TAG_TEMPLATE
- TIDY_TAG_TIME
- TIDY_TAG_TRACK
- TIDY_TAG_VIDEO
- TIDY_NODETYPE_ROOT
- TIDY_NODETYPE_DOCTYPE
- TIDY_NODETYPE_COMMENT
- TIDY_NODETYPE_PROCINS
- TIDY_NODETYPE_TEXT
- TIDY_NODETYPE_START
- TIDY_NODETYPE_END
- TIDY_NODETYPE_STARTEND
- TIDY_NODETYPE_CDATA
- TIDY_NODETYPE_SECTION
- TIDY_NODETYPE_ASP
- TIDY_NODETYPE_JSTE
- TIDY_NODETYPE_PHP
- TIDY_NODETYPE_XMLDECL
- PHP_CLI_PROCESS_TITLE
- STDIN
- STDOUT
- STDERR
Code used to obtain the results:
php8_missing_functions.php
<?php
header('content-type: text/plain');
$functions = json_decode('paste json here', true); // json_encoded version of any PHP 8 setup get_defined_functions() result array.
foreach ($functions as $scopes => $list) {
print_r($scopes . "\n");
print_r(str_repeat('-', 20) . "\n");
print_r(implode("\n", arraY_filter($list, function($e){
return !!!function_exists($e);
})));
print_r("\n\n");
}
php8_missing_constants.php
<?php
header('content-type: text/plain');
$reference_constants = json_decode('paste json here', true); // json_encoded version of any PHP 8 setup get_defined_constants() result array.
$constants = get_defined_constants();
$result = [];
foreach($reference_constants as $name => $value){
if (!isset($constants[$name])) {
$result[$name] = null;
}
if (strval($value) !== $reference_constants[$name]) {
$result[$name] = strval($value);
}
}
print_r("Missing constants:\n" . str_repeat('-', 20) . "\n");
foreach ($result as $name => $value) {
if (is_null($value)) {
print_r($name . "\n");
}
}
print_r("\n");
print_r("Different constants:\n" . str_repeat('-', 20) . "\n");
foreach ($result as $name => $value) {
if (!is_null($value)) {
print_r($name . "\n");
}
}
print_r("\n");
ini_get_all_alternative.php
<?php
header('content-type: text/plain');
$options = explode(',', 'allow_url_fopen,allow_url_include,arg_separator.input,arg_separator.output,assert.active,assert.bail,assert.callback,assert.exception,assert.quiet_eval,assert.warning,auto_append_file,auto_detect_line_endings,auto_globals_jit,auto_prepend_file,bcmath.scale,browscap,cgi.check_shebang_line,cgi.discard_path,cgi.fix_pathinfo,cgi.force_redirect,cgi.nph,cgi.redirect_status_env,cgi.rfc2616_headers,child_terminate,cli.pager,cli.prompt,cli_server.color,com.allow_dcom,com.autoregister_typelib,com.autoregister_verbose,com.autoregister_casesensitive,com.code_page,com.dotnet_version,com.typelib_file,curl.cainfo,date.default_latitude,date.default_longitude,date.sunrise_zenith,date.sunset_zenith,date.timezone,dba.default_handler,default_charset,input_encoding,output_encoding,internal_encoding,default_mimetype,default_socket_timeout,disable_classes,disable_functions,display_errors,display_startup_errors,docref_ext,docref_root,doc_root,enable_dl,enable_post_data_reading,engine,error_append_string,error_log,error_log_mode,error_prepend_string,error_reporting,exif.encode_unicode,exif.decode_unicode_motorola,exif.decode_unicode_intel,exif.encode_jis,exif.decode_jis_motorola,exif.decode_jis_intel,exit_on_timeout,expect.timeout,expect.loguser,expect.logfile,expect.match_max,expose_php,extension,extension_dir,fastcgi.impersonate,fastcgi.logging,file_uploads,filter.default,filter.default_flags,from,gd.jpeg_ignore_warning,geoip.custom_directory,hard_timeout,highlight.comment,highlight.default,highlight.html,highlight.keyword,highlight.string,html_errors,ibase.allow_persistent,ibase.max_persistent,ibase.max_links,ibase.default_db,ibase.default_user,ibase.default_password,ibase.default_charset,ibase.timestampformat,ibase.dateformat,ibase.timeformat,ibm_db2.binmode,ibm_db2.i5_all_pconnect,ibm_db2.i5_allow_commit,ibm_db2.i5_dbcs_alloc,ibm_db2.instance_name,ibm_db2.i5_ignore_userid,iconv.input_encoding,iconv.output_encoding,iconv.internal_encoding,ignore_repeated_errors,ignore_repeated_source,ignore_user_abort,implicit_flush,include_path,intl.default_locale,intl.error_level,intl.use_exceptions,last_modified,ldap.max_links,log_errors,log_errors_max_len,mail.add_x_header,mail.force_extra_parameters,mail.log,max_execution_time,max_input_nesting_level,max_input_vars,max_input_time,mbstring.language,mbstring.detect_order,mbstring.http_input,mbstring.http_output,mbstring.internal_encoding,mbstring.substitute_character,mbstring.func_overload,mbstring.encoding_translation,mbstring.http_output_conv_mimetypes,mbstring.strict_detection,mbstring.regex_retry_limit,mbstring.regex_stack_limit,mcrypt.algorithms_dir,mcrypt.modes_dir,memcache.allow_failover,memcache.max_failover_attempts,memcache.chunk_size,memcache.default_port,memcache.hash_strategy,memcache.hash_function,memcache.protocol,memcache.redundancy,memcache.session_redundancy,memcache.compress_threshold,memcache.lock_timeout,memory_limit,mysql.allow_local_infile,mysql.allow_persistent,mysql.max_persistent,mysql.max_links,mysql.trace_mode,mysql.default_port,mysql.default_socket,mysql.default_host,mysql.default_user,mysql.default_password,mysql.connect_timeout,mysqli.allow_local_infile,mysqli.local_infile_directory,mysqli.allow_persistent,mysqli.max_persistent,mysqli.max_links,mysqli.default_port,mysqli.default_socket,mysqli.default_host,mysqli.default_user,mysqli.default_pw,mysqli.reconnect,mysqli.rollback_on_cached_plink,mysqlnd.collect_statistics,mysqlnd.collect_memory_statistics,mysqlnd.debug,mysqlnd.log_mask,mysqlnd.mempool_default_size,mysqlnd.net_read_timeout,mysqlnd.net_cmd_buffer_size,mysqlnd.net_read_buffer_size,mysqlnd.sha256_server_public_key,mysqlnd.trace_alloc,mysqlnd.fetch_data_copy,oci8.connection_class,oci8.default_prefetch,oci8.events,oci8.max_persistent,oci8.old_oci_close_semantics,oci8.persistent_timeout,oci8.ping_interval,oci8.prefetch_lob_size,oci8.privileged_connect,oci8.statement_cache_size,odbc.default_db *,odbc.default_user *,odbc.default_pw *,odbc.allow_persistent,odbc.check_persistent,odbc.max_persistent,odbc.max_links,odbc.defaultlrl,odbc.defaultbinmode,odbc.default_cursortype,opcache.enable,opcache.enable_cli,opcache.memory_consumption,opcache.interned_strings_buffer,opcache.max_accelerated_files,opcache.max_wasted_percentage,opcache.use_cwd,opcache.validate_timestamps,opcache.revalidate_freq,opcache.revalidate_path,opcache.save_comments,opcache.fast_shutdown,opcache.enable_file_override,opcache.optimization_level,opcache.inherited_hack,opcache.dups_fix,opcache.blacklist_filename,opcache.max_file_size,opcache.consistency_checks,opcache.force_restart_timeout,opcache.error_log,opcache.log_verbosity_level,opcache.record_warnings,opcache.preferred_memory_model,opcache.protect_memory,opcache.mmap_base,opcache.restrict_api,opcache.file_update_protection,opcache.huge_code_pages,opcache.lockfile_path,opcache.opt_debug_level,opcache.file_cache,opcache.file_cache_only,opcache.file_cache_consistency_checks,opcache.file_cache_fallback,opcache.validate_permission,opcache.validate_root,opcache.preload,opcache.preload_user,opcache.cache_id,opcache.jit,opcache.jit_buffer_size,opcache.jit_debug,opcache.jit_bisect_limit,opcache.jit_prof_threshold,opcache.jit_max_root_traces,opcache.jit_max_side_traces,opcache.jit_max_exit_counters,opcache.jit_hot_loop,opcache.jit_hot_func,opcache.jit_hot_return,opcache.jit_hot_side_exit,opcache.jit_blacklist_root_trace,opcache.jit_blacklist_side_trace,opcache.jit_max_loop_unrolls,opcache.jit_max_recursive_calls,opcache.jit_max_recursive_returns,opcache.jit_max_polymorphic_calls,open_basedir,output_buffering,output_handler,pcre.backtrack_limit,pcre.recursion_limit,pcre.jit,pdo.dsn.*,pdo_odbc.connection_pooling,pdo_odbc.db2_instance_name,pgsql.allow_persistent,pgsql.max_persistent,pgsql.max_links,pgsql.auto_reset_persistent,pgsql.ignore_notice,pgsql.log_notice,phar.readonly,phar.require_hash,phar.cache_list,post_max_size,precision,realpath_cache_size,realpath_cache_ttl,register_argc_argv,report_memleaks,report_zend_debug,request_order,runkit.superglobal,runkit.internal_override,sendmail_from,sendmail_path,serialize_precision,session.save_path,session.name,session.save_handler,session.auto_start,session.gc_probability,session.gc_divisor,session.gc_maxlifetime,session.serialize_handler,session.cookie_lifetime,session.cookie_path,session.cookie_domain,session.cookie_secure,session.cookie_httponly,session.cookie_samesite,session.use_strict_mode,session.use_cookies,session.use_only_cookies,session.referer_check,session.cache_limiter,session.cache_expire,session.use_trans_sid,session.trans_sid_tags,session.trans_sid_hosts,session.sid_length,session.sid_bits_per_character,session.upload_progress.enabled,session.upload_progress.cleanup,session.upload_progress.prefix,session.upload_progress.name,session.upload_progress.freq,session.upload_progress.min_freq,session.lazy_write,session.hash_function,session.hash_bits_per_character,session.entropy_file,session.entropy_length,short_open_tag,SMTP,smtp_port,soap.wsdl_cache_enabled,soap.wsdl_cache_dir,soap.wsdl_cache_ttl,soap.wsdl_cache,soap.wsdl_cache_limit,sql.safe_mode,sqlite3.extension_dir,sqlite3.defensive,syslog.facility,syslog.filter,syslog.ident,sys_temp_dir,sysvshm.init_mem,tidy.default_config,tidy.clean_output,track_errors,unserialize_callback_func,unserialize_max_depth,uploadprogress.file.filename_template,upload_max_filesize,max_file_uploads,upload_tmp_dir,url_rewriter.tags,user_agent,user_dir,user_ini.cache_ttl,user_ini.filename,uopz.disable,uopz.exit,uopz.overloads,variables_order,windows.show_crt_warning,xbithack,xmlrpc_errors,xmlrpc_error_number,yaz.keepalive,yaz.log_mask,zend.assertions,zend.detect_unicode,zend.enable_gc,zend.multibyte,zend.script_encoding,zend.signal_check,zend_extension,zlib.output_compression,zlib.output_compression_level,zlib.output_handler');
$inis = [];
foreach($options as $option){
if(substr($option, strlen($option) - 2, 2) === '.*'){
$option_prefix = substr($option, 0, strlen($option) - 2);
$index = 0;
$inis[$option_prefix] = [];
while(!empty(ini_get($option_prefix.'.'.$index))){
$inis[$option_prefix][] = ini_get($option_prefix.'.'.$index);
}
}else{
$inis[$option] = ini_get($option);
}
}
print_r($inis);
Functions with adjusted behaviour:
ini_get_all()
This function now returns NULL regardless of the string parameter.
Original documentation specified this function to either return an array or false.
You can get around this by call ini_get() on all default directives and get the existing values, however this does not return the global values.
See above ini_get_all_alternative.php for alternative.
phpinfo()
This function returns 6 lines of kinda-useful information.
Workarounds
tidy functions
Use this library and integrate as a composer library.
GitHub - Stolz/laravel-html-tidy: HTML Tidy middleware for Laravel
composer require stolz/laravel-html-tidy
It’s not very likely for IMAP and LDAP workarounds to exist as most solution depends on socket functions that are disabled here. Using a third-party API for connecting IMAP and LDAP is a waste of resources when you can have external mail or LDAP stores directly.
Windows-specific constants and functions also do not require a workaround as the server is Linux-based. Missing constants can be simply declared without too much effort.
At this point, I guess someone on this forum can rebuild a phpinfo() replica without the detailed system information.
Cheers!