gpt4 book ai didi

arrays - 将PHP数组传递给NodeJS

转载 作者:行者123 更新时间:2023-12-03 13:23:32 25 4
gpt4 key购买 nike

如何将PHP数组传递给Nightmare 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中获得相同的数组?

正如您在下面看到的,Simon带着escapeshellarg进行了营救。谢谢西蒙!
最后,我在Node JS脚本中又迈出了一步。我需要:getTitles = JSON.parse(getTitles);

最佳答案

更改您的shell_exec以转义json,如下所示:

shell_exec('xvfb-run node app.js ' . escapeshellarg($json_titles));

这将转义JSON中的双引号,因此将其正确传递给node。

您应该在将变量传递给命令行时随时执行此操作,以减少错误和安全风险。

编辑:正如OP所发现的那样,Node还必须解析JSON,因为它以字符串形式获取参数。可以在节点脚本中完成以下操作:
ParsedTitles = JSON.parse(getTitles);

关于arrays - 将PHP数组传递给NodeJS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51896103/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com