1

PHP を使用してマップしたいさまざまなフォルダーとファイルがあります。それらをデータベースに保存することは実際にはオプションではなく、Windowsファイルシステムに保存する必要があります。

残念ながら、ドライブの制限により(ネットワークドライブです)。「open_basedir の制限が有効です」というエラー メッセージが表示されるため、scandir() と set_include_path() を使用できません。セキュリティ プロパティに IIS_IUSR を追加できるセキュリティ アクセス許可にアクセスできないため、これを回避できません。追加する必要がありますが、私は通常のユーザーとしてドライブ上のすべてに完全な読み取り/書き込みアクセス権を持っています。

スケジュールに従って実行されるツールではなく、PHP から要求されたときに実行されるツールが必要です。

これを達成するために私が検討した 1 つの方法は、C# で記述されたサービスを使用し、必要に応じて PHP でそれを呼び出すことです。それらを接着する方法がわかりません。

誰かがこれを行う方法についてより良い提案があれば教えてください。

4

1 に答える 1

3

トラバースできるパス(open_basedirなど)に制限がある場合、そのディレクトリの外部を読み取ることはできないため、代わりに「外部」のものを使用する必要があります。あなたがWindowsを使用していて、そのOSの経験がほとんどないので、可能な限り最も単純な解決策を選びます。単に「dir」プログラムを呼び出すだけです。これでうまくいくかもしれないと思っていますが、残念ながらテストする方法がありません。

<?php
$output = `dir /s C:\directory\to\traverse`;

var_dump( $output );
于 2012-08-14T08:32:42.240 に答える