exec()
を_'whoami'
_とともに使用して、それが機能するかどうかを確認し、次の結果を得ました。
_nt authority\system
_
ここで、exec()
関数を介してphp
からのパラメーターを使用して_.exe
_ファイルを実行する必要があります。
command Promptでこれを試してみましたが、実際には指定されたパラメーターでプログラムを実行します。これはコマンドの例です。
[〜#〜] note [〜#〜] exeファイルは3つの入力を取得します(フォルダ、file_name、report_file_nmae)
_> ..\..\some_file.exe folder="C:\path_to_folder" param=1.xml report=2.xml
_
しかし、php
ファイルからこのコマンドを実行すると:
_exec('..\..\some_file.exe folder="C:\path_to_folder" param=1.xml report=2.xml');
_
何も起きていません。 exec()関数を使用するのはこれが初めてなので、その詳細に精通していません。 何が問題なのですか?
私は使用してみました:
\\
_の代わりに_\
_escapeshellarg()
ディレクトリ上""
_を追加運がない
補遺:
_echo exec($command) // echos < .... why?
_
または
_exec($command, $output);
print_r($output); // Array()
_
ファイルのアクセス許可をすべてのユーザーのフルコントロールに変更しました。 _command Prompt
_からプログラムを呼び出すと、1秒の時計の横にアイコンが表示されます。
しかし、php
からの同じ呼び出しは、プログラムを呼び出すことさえしません。
編集
exec('notepad.exe');
でも機能していません。多分php
構成で何かしなければなりませんか?
exec()
関数は初めてだと既に言った。さらに掘り下げた後、exec()
のコマンドの最後に追加する必要がある_2>&1
_に出会いました。
コメントでも指摘してくれてありがとう_@mattosmat
_。あなたはそれがLinuxコマンドだと言ったので、私はこれをすぐには試しませんでした、私はWindowsにいます.
だから、私が発見したことは、コマンドが実際にバックエンドで実行されていることです。そのため、実際に実行されているのを見ることができませんでした。
同様の問題を抱えていたすべての人にとって、このコマンドを使用することをお勧めします。 すべてのエラーを指摘し、実行に関する情報/詳細も通知します。
_exec('some_command 2>&1', $output);
print_r($output); // to see the response to your command
_
すべての助けてくれてありがとう、私はそれを感謝します;)
実行しようとしているバイナリへの完全なパスを指定することもできます。 ImageMagick
を使用しようとしたときの問題は解決しました。