私は自分のプロジェクトの1つに取り組んでいます。プロジェクトを開発するために、Windows マシンで XAMPP を使用しています。これが私が直面している問題です。サーバーでシェル スクリプトを実行し、結果を Web ページに表示する必要があります。問題は、ほとんどのスクリプトが期待どおりに機能しているのに、次のコマンドの出力を取得できないことです。
ls、猫、pwd
これらのコマンドは空の配列を返すためです。
正確な問題を見つけることができません。
lsこれはあなたの質問に対する直接の答えではありませんが、の機能はPHP内でシミュレーcatトできることを指摘することが重要だと感じたpwdので、これらのコマンドを呼び出して結果をPHPに返すだけです。 、それならそれらを呼び出す意味がまったくないかもしれません。
lsディレクトリリストです。PHPはDirectoryIterator、ほんの数行のコードでこれを正確に実行できると呼ばれるクラスを提供します。
例:
$iterator = new DirectoryIterator($directory);
foreach ($iterator as $fileinfo) {
if ($fileinfo->isFile()) {
print "File: ".$fileinfo->getFilename();
}
}
pwd現在のディレクトリを取得します。PHPには、getcwd()これを1行のコードで実行する組み込み関数があります。
catファイル(およびパイプ)を出力バッファーに出力します。これはおそらくPHP内でも実行できます。catシェルに保持したいかなり複雑なコマンドラインのものに使用されることがあります。しかし、単純なもの(そして適度に複雑なもの)の場合、PHPは完全に機能します。
あなたが達成しようとしていることについてもっと知ることは助けになるでしょうが、PHPは、シェルをまったく使用しなくても、あなたがしているように聞こえることができると信じています。
お役に立てば幸いです。
passthru()の代わりに使用しexec()ます。