Răsfoiți Sursa

return loaded php modules

Medowar 1 lună în urmă
părinte
comite
4b5d5ab7dd
1 a modificat fișierele cu 41 adăugiri și 0 ștergeri
  1. 41 0
      php_modules.php

+ 41 - 0
php_modules.php

@@ -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;