私のセットアップは次のとおりです。Windows 7、Apache と PHP が有効になっている XAMPP 変換を実行するために外部プログラムを呼び出す PHP スクリプトがあります。この外部プログラムは EXE ファイルであり、次の 3 つの属性が必要です。
- ソースファイル
- 宛先ファイル
- 追加のフラグ (コンバージョン タイプなど)
XAMPP に組み込まれているコマンド ライン ツールを使用してスクリプトを実行すると、すべて正常に動作します。しかし、PHP スクリプトで exec() 関数を使用すると、出力ファイルが作成されません。変換が実際に行われていることは確かです (約 5 秒かかり、PHP スクリプトの実行にかかる時間とほぼ同じです)。
これはアクセス許可の問題だと思うので、既に EXE ファイルを PHP ファイルと同じフォルダーに移動し、フォルダー全体のアクセス許可を調整しました (すべてのユーザーにすべてのアクセス許可を付与しました)。また、Windows UAC を無効にして、コマンドを BAT ファイルに入れようとしました。ファイルは作成されません。
どんな助けやヒントも大歓迎です!
私のPHPコードは次のとおりです。
exec('c:\converter.exe c:\src.txt c:\dst.txt -f', $output);
print_r($output);
$output を出力すると、配列が空であることがわかります。コマンドプロンプトにまったく同じコマンドを入力すると、コードは魅力的に機能します(構文エラーはありません)。絶対パスも使用します。