I gave this some more thought and given size of WP code base (including bundled libraries) it doesn’t seem very realistic to compile such list by hand (and repeat it for every new version – meh).
I looked up appropriate static code analysis tool – PHP_CompatInfo and after some tinkering generated following report of extensions used by core (version scanned 3.3.1):
-
cURL – 127 uses (requires libcurl)
- HTTP API (class
WP_Http_curl
) url_is_accessable_via_ssl()
SimplePie(overridden with classWP_SimplePie_File
)GoogleSpell(from TinyMCE package, is not used?)
- HTTP API (class
-
Date/Time – 367 uses
-
DOM – 6 uses (requires libxml)
iis7_rewrite_rule_exists()
iis7_delete_rewrite_rule()
iis7_add_rewrite_rule()
saveDomDocument()
-
POSIX Regex – 23 uses
-
Filter – 2 uses
- class
PHPMailer->ValidateAddress()
(optional)
- class
-
FTP – 72 uses
- class
ftp_base
- class
ftp
(pure and sockets versions) - class
WP_Filesystem_FTPext
- class
WP_Filesystem_ftpsockets
- class
-
GD – 56 uses
wp-admin\includes\image-edit.php
wp-admin\includes\image.php
wp-includes\media.php
-
Hash – 6 uses
wp-includes\pluggable.php
multiple uses (optional – fallback inwp-includes\compat.php
)
-
iconv – 5 uses
- class
SimplePie
(optional) wp_check_invalid_utf8()
(optional)wp-mail.php
(optional)
- class
-
JSON – 20 uses
- optional, fallbacks in
wp-includes/compat.php
- optional, fallbacks in
-
libxml – 4 uses
- class
WP_oEmbed->_parse_xml()
(optional) - SimplePie
- class
-
Multibyte String – 29 uses
- some fallback in
wp-includes/compat.php
- some fallback in
-
MySQL – 60 uses
- class
wpdb
class(overridden with classSimplePie_Cache
WP_Feed_Cache
)
- class
-
OpenSSL – 4 uses
- class
PHPMailer
- class
-
PCRE – 743 uses
-
SimpleXML – 1 uses
- class
WP_oEmbed
(seems optional)
- class
-
Sockets – 64 uses
- class
ftp
(sockets
implementation)
- class
-
SPL – 3 uses
-
Tokenizer – 3 uses
wp_doc_link_parse()
(optional)
-
XML Parser – 89 uses
-
XMLReader – 1 uses
- SimplePie (seems optional)
-
Zlib – 30 uses