2

重複の可能性:
PHPが文字列の変数を置き換えないのはなぜですか?

echo exec('hi.exe $file',$results,$status);私はPhpからこの行を実行しようとしています。ここで、$ fileに割り当てられる値は、ファイル名hi.txt(つまり、$ file = hi.txt)です。

しかし、同じ行でコードを実行しようとするたびに、コマンドプロンプトで同じコードを実行し$file file not foundた場合と同じようにエラーが表示されます。hi.exe hi.txt

また、phpの変数の代わりにファイル名を使用して同じ行を実行しようとするとexec('hi.exe hi.txt',$results,$status)、ブラウザは出力を表示せずに長時間実行し続けます。

誰かが私がどこで間違っているのか教えてください!

4

2 に答える 2

2

二重引用符ではなく、一重引用符を使用しています。次のように変更echo exec('hi.exe $file',$results,$status);します。

echo exec("hi.exe $file",$results,$status);

または、次のようにドットを使用します。

echo exec('hi.exe '.$file,$results,$status);

PHPでは、一重引用符を使用し$fileてもhi.txt;にはなりません。リテラル文字列「$file」のままです。二重引用符またはドット連結を使用して、実際に展開$fileしますhi.txt

于 2012-11-16T05:12:35.793 に答える
1

一重引用符は変数を展開しません。あなたはおそらく意味します:

echo exec("hi.exe $file",$results,$status);
于 2012-11-16T05:12:45.200 に答える