php_modules.php 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. <?php
  2. /**
  3. * Returns all installed (loaded) PHP modules.
  4. *
  5. * Usage:
  6. * Web: http://host/php_modules.php -> JSON
  7. * CLI: php php_modules.php -> JSON
  8. * php php_modules.php --plain -> one module per line
  9. */
  10. $plain = PHP_SAPI === 'cli'
  11. ? in_array('--plain', $argv, true)
  12. : isset($_GET['plain']);
  13. $modules = get_loaded_extensions();
  14. sort($modules, SORT_NATURAL | SORT_FLAG_CASE);
  15. if ($plain) {
  16. if (PHP_SAPI !== 'cli') {
  17. header('Content-Type: text/plain; charset=utf-8');
  18. }
  19. echo implode(PHP_EOL, $modules), PHP_EOL;
  20. exit;
  21. }
  22. $result = [
  23. 'php_version' => PHP_VERSION,
  24. 'sapi' => PHP_SAPI,
  25. 'count' => count($modules),
  26. 'modules' => [],
  27. ];
  28. foreach ($modules as $module) {
  29. $version = phpversion($module);
  30. $result['modules'][$module] = ($version === false || $version === '') ? null : $version;
  31. }
  32. if (PHP_SAPI !== 'cli') {
  33. header('Content-Type: application/json; charset=utf-8');
  34. }
  35. echo json_encode($result, JSON_PRETTY_PRINT | JSON_UNESCAPED_SLASHES), PHP_EOL;