如何将PHP数组传递给噩梦NodeJS脚本?这就是我的观点:
/*Original array $titles =
Array
(
[0] => title 1 with, a comma after with
[1] => title 2
[2] => title 3
[3] => title 4
)
*/
//PHP
$json_titles = json_encode($titles);
echo $json_titles;
// Output: ["title 1 with, a comma after with","title 2","title 3","title 4"]
// Pass to Nightmare NodeJS script with:
shell_exec('xvfb-run node app.js ' . $json_titles);
//NodeJS app.js:
const getTitles = process . argv[2];
console.log(getTitles)
// Output: [title 1 with, a comma after with,title 2,title 3,title 4]
如何将PHP中的相同数组转换为NodeJS?
正如你在下面看到的,西蒙带着逃脱来拯救他。谢谢西蒙!我还在Node JS脚本中多了一个步骤。我需要这样做: getTitles = JSON.parse(getTitles);
发布于 2018-08-17 21:34:32
更改您的shell_exec以转义json,如下所示:
shell_exec('xvfb-run node app.js ' . escapeshellarg($json_titles));
这将转义JSON中的双引号,以便将它们正确地传递给节点。
您应该在将变量传递到命令行时执行此操作,以减少错误和安全风险。
编辑:正如OP发现的那样,Node还必须解析JSON,因为它以字符串的形式获取参数。这可以在节点脚本中完成,如下所示:
ParsedTitles = JSON.parse(getTitles);
https://stackoverflow.com/questions/51896103
复制相似问题