制御されたイントラネット環境では、PHP アプリケーションから外部プログラムを実行するのは困難な場合があります。 system や exec などのコマンドはプロセスを起動できますが、表示されるユーザー インターフェイスでプログラムを処理するのは困難に直面します。
問題:
ユーザーは、次のようなプログラムを起動できます。サイレントに動作します (例: 「echo hello > hello.txt」)。ただし、グラフィカル ユーザー インターフェイス (「エクスプローラー」など) を使用してプログラムを起動しようとしても、何も起こりません。
解決策:
この問題を解決するには、次の手順を実行します。 PHP スクリプトを実行している Apache サービスがデスクトップと対話できるようにするために必要です。
コード スニペット:
これらの変更を加えた後、pclose と system:
非ブロック:
<code class="php">pclose(popen("start /B notepad.exe", "r"));</code>
ブロック:
<code class="php">system('start notepad.exe');</code>
注:
これソリューションは Windows XP でテストされており、他の Windows バージョンでは動作しない可能性があります。以上が制御されたイントラネット環境でユーザー インターフェイスを備えた PHP を使用して外部プログラムを実行する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。