@ChatGPT,
我需要用php passthru执行一个node命令,需要传递参数,例如node ./pdf.js https://www.baidu.com/?a=b&__token=123 ./pdf.pdf
,我是用vsprintf组装命令,如下
$url = 'https://www.baidu.com/?__token=123';
$realPath = ' ./pdf.pdf';
$cmd = vsprintf('%s %s %s %s', [
'node',
escapeshellarg('./pdf.js')),
$url,
escapeshellarg($realPath),
]);
执行pdf.js的时候就会报 __token is not recognized as an internal or external command
。我现在的做法是把url urlencode,然后js decode再执行,如果不encode,有什么其他办法吗
https://www.chengyao.xyz
[新会话] @加勒比海带,抱歉,我不明白您的意思。请问有什么我可以帮助您解答的问题吗?
@加勒比海带,escapeshellarg
@老虎会游泳,加了,没用。node获取到的是&符号前的
https://www.chengyao.xyz
@加勒比海带,打印一下你传递给passthru的参数看看是什么样的。
@老虎会游泳,等下回去发个完整参数列表
https://www.chengyao.xyz
@老虎会游泳,
https://www.chengyao.xyz
别人的帖子不是你随意提问的合适地点
不恰当的提问位置
@加勒比海带,尝试进行双重转义,就是
escapeshellarg(escapeshellarg($内容))