In response to hazem dot khaled at gmail dot com's post, one could simply write:
<?php
function apache_is_module_loaded($mod_name)
{
$modules = apache_get_modules();
return in_array($mod_name, $modules);
}
?>
Why write three lines of code when one will do?
apache_get_modules
(PHP 4 >= 4.3.2, PHP 5)
apache_get_modules — ロードされた Apache モジュールのリストを取得する
説明
array apache_get_modules
( void
)
ロードされた Apache モジュールのリストを取得します。
返り値
ロードされた Apache モジュールの配列 array を返します。
変更履歴
| バージョン | 説明 |
|---|---|
| 5.0.0 | Apache 1 を使用している、もしくは Apache 2 で フィルター API として使用している場合に利用可能です。 以前は、Apache 2 の ハンドラ API として使用している場合にのみ利用可能でした。 |
例
例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
robert at impey dot info
07-May-2008 10:17
07-May-2008 10:17
Vlad Alexa Mancini mancini at nextcode dot org
04-Aug-2005 09:13
04-Aug-2005 09:13
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;
}
?>
