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");