2

我有一个 perl 脚本,它对大量数据执行操作并构建一个表。我想从 PHP 调用这个脚本。我正在传递包含字符串、引号和各种讨厌的表格数据,所以很简单

 passthru('./path/to/pl $var1 $var2');

不会的。我正在考虑对数据进行 JSON 编码,然后对 JSON 进行 base64 编码并传递如下:

 passthru('./path/to/pl "$base64edJSON"');

这是正确的方法还是有更好的方法?perl 脚本必须通过 return、stdout 或其他方式将完成的表返回给 PHP 脚本。

4

3 回答 3

2

您可以使用proc_open调用 perl 脚本。然后您可以通过标准输入将输入提供给它,并从标准输出获取输出/错误。Perl 脚本将作为管道运行。

这解决了临时文件的任何混乱。

于 2012-08-06T17:26:55.643 回答
1

在 PHP 端,打开一个到 Perl 进程的双向管道并写入它的管道。在 Perl 方面,从 STDIN 读取。

要返回数据,请在 Perl 中写入 STDOUT。在 PHP 中,从管道中读取。

您不需要编码。

于 2012-08-06T17:27:51.710 回答
0

我会将 PHP 中的内容序列化为一个文件,然后将其加载到 Perl 中。您可以使用 CPAN 模块PHP::Serialization

于 2012-08-06T17:23:22.933 回答