2021年3月17日水曜日

Windows上のPHPで外部実行の結果が取れない

phpからnodejsの結果を取りたかった。

昔もハマった気がするのでメモ。


<原因>

Windowsは、すべて同じコマンドの一部であることを伝える必要があるため、スペースではうまく機能しません。

コマンドパス全体を二重引用符で囲み(シングルは機能しません)、バックスラッシュをスラッシュに置き換える必要があります。


<解決方法1>

$cmd_res = shell_exec("\"C:/Program Files/nodejs/node.exe\" \"C:/workspace/main.js\"");


<解決方法2>
スペースを無くしてディレクトリセパレータをエスケープシーケンスにする

$cmd_res = shell_exec("node.exe C:\\workspace\\main.js");


0 件のコメント:

コメントを投稿