apache_get_modules() is only available when the PHP is installed as a module and not as a CGI == It doesn't work with php-fpm.
    (PHP 4 >= 4.3.2, PHP 5, PHP 7, PHP 8)
apache_get_modules — 获得已加载的Apache模块列表
获得已加载的Apache模块列表。
包含已加载的Apache模块的数组.
| 版本 | 说明 | 
|---|---|
| 5.0.0 | 可用于Apache 1或PHP Apache 2 filter API。 在此之前, 只可用于 Apache 2 handler API。 | 
Example #1 apache_get_modules() 示例
<?php
print_r(apache_get_modules());
?>
以上例程的输出类似于:
Array
(
    [0] => core
    [1] => http_core
    [2] => mod_so
    [3] => sapi_apache2
    [4] => mod_mime
    [5] => mod_rewrite
)
apache_get_modules() is only available when the PHP is installed as a module and not as a CGI == It doesn't work with php-fpm.
    
<?php
function apache_module_exists($module)
{
    return in_array($module, apache_get_modules());
}
?>
    
function apache_module_exists($module_name)
{
    $modules = apache_get_modules();
    return ( in_array($module_name, $modules) ? true : false );
}
var_dump(apache_module_exists('mod_headers'));
    
<?php
function apache_module_exists($module_name)
{
    $modules = apache_get_modules();
    foreach ($modules as $module)
    {
        if ($module == $module_name)
            return true;
    }
    
    return false;
}
var_dump(apache_module_exists('mod_headers'));
    
this function can be used on older php versions using something like "/etc/httpd/httpd.conf" as $fname
<?php
function get_modules ($fname){
   if (is_readable($fname)){
      $fcont = file($fname);
      if (is_array($fcont)){
          foreach ($fcont as $line){
              if (preg_match ("/^LoadModule\s*(\S*)\s*(\S*)/i",$line,$match)){
                  $return[$match[2]] = $match[1];
              }
          }
      }
   }
   return $return;
}
?>