|
|
@@ -0,0 +1,41 @@
|
|
|
+<?php
|
|
|
+/**
|
|
|
+ * Returns all installed (loaded) PHP modules.
|
|
|
+ *
|
|
|
+ * Usage:
|
|
|
+ * Web: http://host/php_modules.php -> JSON
|
|
|
+ * CLI: php php_modules.php -> JSON
|
|
|
+ * php php_modules.php --plain -> one module per line
|
|
|
+ */
|
|
|
+
|
|
|
+$plain = PHP_SAPI === 'cli'
|
|
|
+ ? in_array('--plain', $argv, true)
|
|
|
+ : isset($_GET['plain']);
|
|
|
+
|
|
|
+$modules = get_loaded_extensions();
|
|
|
+sort($modules, SORT_NATURAL | SORT_FLAG_CASE);
|
|
|
+
|
|
|
+if ($plain) {
|
|
|
+ if (PHP_SAPI !== 'cli') {
|
|
|
+ header('Content-Type: text/plain; charset=utf-8');
|
|
|
+ }
|
|
|
+ echo implode(PHP_EOL, $modules), PHP_EOL;
|
|
|
+ exit;
|
|
|
+}
|
|
|
+
|
|
|
+$result = [
|
|
|
+ 'php_version' => PHP_VERSION,
|
|
|
+ 'sapi' => PHP_SAPI,
|
|
|
+ 'count' => count($modules),
|
|
|
+ 'modules' => [],
|
|
|
+];
|
|
|
+
|
|
|
+foreach ($modules as $module) {
|
|
|
+ $version = phpversion($module);
|
|
|
+ $result['modules'][$module] = ($version === false || $version === '') ? null : $version;
|
|
|
+}
|
|
|
+
|
|
|
+if (PHP_SAPI !== 'cli') {
|
|
|
+ header('Content-Type: application/json; charset=utf-8');
|
|
|
+}
|
|
|
+echo json_encode($result, JSON_PRETTY_PRINT | JSON_UNESCAPED_SLASHES), PHP_EOL;
|