将文件从 file() 传递到 Perl 程序 PHP
我有一个 PHP 代码,通过 file() 方法存储 url 的内容,就像
$contents=file("http://www.rcsb.org/pdb/files/2AID.pdb");
我需要通过 shell_exec() 方法将这些 $contents 传递给 perl 程序一样,如下所示
$result=shell_exec("perl_prog.pl $contents");
我的问题是如何将此 $contents 传递给 Perl 程序。我尝试了以下操作
@file=<@ARGV>;
,但它不起作用。请帮我。
I have a PHP code that stores contents of a url by file() method like
$contents=file("http://www.rcsb.org/pdb/files/2AID.pdb");
I need to pass these $contents to a perl program by shell_exec() method , something like following
$result=shell_exec("perl_prog.pl $contents");
My question is how to pass this $contents to Perl program. I tried like following
@file=<@ARGV>;
but its not working. Please help me.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
shell_exec() 代码完全容易受到 shell 注入的攻击 - 您相信远程服务不会包含以下内容:
同样,
file()
将文件内容作为数组返回 - 您可以不要直接通过命令行传递数组。只有字符串。一个相对安全的版本是:
在 Perl 方面,您可以使用
That shell_exec() code is utterly vulnerable to shell injection - you're trusting that the remote service won't include something like:
As well,
file()
returns the file contents as an array - you can't pass arrays over the command line directly. Only strings.A moderately safer version is:
On the Perl side, you'd use