Найти доступные (не загруженные) расширения PHP

Мне нужен способ найти все доступные расширения PHP , загружены они или нет . Я посмотрел, как увидеть расширения, загруженные PHP? но это только объясняет, как найти загруженные расширения. Я также хочу найти разгруженные расширения.

Зная расширение extension_dir из php.ini, я сделал ls /extension_dir/*.so который возвратил 26 записей. Когда я попытался с php -m , у меня было 57 записей. Как это возможно?

Как узнать, какие расширения PHP доступны для загрузки? Я не хочу знать, какие из них загружены, но которые загружаются.

Если вам нужен список возможно загружаемых расширений, вы должны получить список файлов с расширением, равным значению PHP_SHLIB_SUFFIX , и которые находятся в каталоге, где PHP проверяет расширения PHP ( <install-dir>/lib/php/extensions/<debug-or-not>-<zts-or-not>-ZEND_MODULE_API_NO ). Если вы хотите избежать уже загруженных расширений, вы должны передать имя расширения (без расширения файла) в extension_loaded () .

Имейте в виду, что файл с правильным расширением файла не может быть загружен из PHP как расширение, потому что файл не имеет правильной структуры (например, из-за повреждения файла) или потому, что расширение PHP зависит от файлов, расширение 't найти, или он не может загрузить.

Имейте в виду, что некоторые расширения могут быть построены статически в PHP. Вы увидите, что они перечислены как расширения в php.ini, но вы не сможете их отключить, и в большинстве случаев вы не увидите строку extension =, ссылающуюся на них в файлах php.ini или .so / .DLL. Удаление статически скомпилированных расширений требует перекомпиляции самого PHP, и в большинстве случаев это вряд ли необходимо, так как большинство статически скомпилированных расширений имеют тенденцию включать основные функции, которые редко нужно удалять.

http://arr.gr/blog/2012/06/on-php-extensions/

Спасибо, Маттео Тассинари.

Один из способов – проверить значение 'extension_dir':

 phpinfo(); 

Затем сканируйте каталог, чтобы просмотреть файлы:

 $exts = scandir("/usr/lib/php5/extension_dir/"); print_r($exts);