例 --  System_WinDrives の使用法

System_WinDrives の使用法

例 63-1一般的な使用法

<?php
require_once 'System/WinDrives.php';

// ドライブ名を取得したい場合は、最初のパラメータに "true" を渡します。
// これは php.exe をクラッシュさせる可能性があるので、デフォルトでは無効になっています。
$wd = new System_WinDrives(false);

echo 'API が使用可能かどうか: ';
echo $wd->isApiAvailable() ? 'yes' : 'no';
echo "\r\n";

$arInfo = $wd->getDrivesInformation();
foreach ($arInfo as $strDrive => $objInfo) {
echo $strDrive . "\r\n";
echo '   型: ' . $objInfo->type . "\r\n";
echo '   型のタイトル: ' .  $objInfo->typetitle . "\r\n";
echo '   名前: ' . $objInfo->name . "\r\n";
?>

まず最初に System_WinDrives オブジェクトのインスタンスを作成します。パラメータに "true" を指定することでハードディスク名を取得できるようになりますが、 PHP をクラッシュさせる可能性があるのでデフォルトでは無効になっています。

次に行っているのが、このクラスが使用可能かどうかの確認です。 これは、拡張モジュール (PHP 4 なら win32api、 PHP 5 なら php_ffi) が存在するかどうかに依存します。 isApiAvailable メソッドが true を返せば使用可能です。

次に、ドライバの情報を getDrivesInformation で読み込んで それを出力します。

API が使用できない場合は、このメソッドは、 ルートディレクトリが存在するかどうかを調べることでドライブ一覧を推測します。