PHP 8.2 and MariaDB 10.4 upgrades!

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!

7 Likes