【问题标题】:Can I pass variable from Perl to PHP and backwards?我可以将变量从 Perl 传递到 PHP 并向后传递吗?
【发布时间】:2016-09-22 21:30:56
【问题描述】:

我被要求用 Perl 为 Foswiki 编写一个插件,我在 PHP 中找到了我的任务的完整代码(大量代码)。我想要的是在 Perl 中编写简单的插件,它将字符串变量传递给 PHP 脚本,PHP 脚本将处理它并返回结果,我想将它传递给 Perl 就这样:)

我发现了这个:https://stackoverflow.com/a/455453 有人描述了一种从 PHP 中“捕获”结果的解决方案,但我仍然需要将字符串传递给 PHP。这甚至可能吗?

【问题讨论】:

  • 如您在上面链接到的答案之一所述,您可以在从 perl 脚本调用 php 时传递命令行参数。也可以使用 wget 之类的东西将 url(可能带有http://example.com/?q=<somequery> 中的 GET 参数)保存到文件中,然后解析该文件以获取您需要的信息
  • 好主意 :) 我在想一些不同的东西。怎么样:PERL 脚本正在将字符串变量传递给 .txt 文件,并调用 PHP 脚本,然后 PHP 正在读取 .txt 并获取该字符串,然后对其进行处理并回显结果。然后在我的 $output = php test.php; 中的 Perl 脚本中就像上面的链接一样,我会得到我的结果。你怎么看?
  • 是的,这也可以。你也可以看看curl 和/或者你甚至可以为 PHP webapp 构建一个小 API,让你有更多的灵活性
  • 其他形式的IPC怎么样?在管道或 shm 中?

标签: php perl


【解决方案1】:

你不能每次都传递一个变量(因为它指的是一个进程中的内存),但是有很多方法可以将信息从一个程序传递到另一个程序。这是一个:

第一个程序:

#!/usr/bin/perl
use IPC::System::Simple qw( capturex );
my $request = "abc";
my $reply = capturex('upper', $request);
print("$request => $reply\n");

第二期节目(upper):

#!/usr/bin/php
<?php echo(strtoupper($argv[1])) ?>

【讨论】:

  • 我在问题中发布的链接中这样做了。在 php 中:echo "PHP 生成了这个";在 perl 中:我的 $output = php test.php;所以 perl 会生成一个 .txt 文件并放一个字符串,然后 $output = php test.php;我调用读取 .txt 文件的 php 脚本,对其进行处理,然后返回带有 echo 的结果,我用 $output “捕获”该结果。对我来说,这是最简单的方法 :) 谢谢!
猜你喜欢
  • 2013-04-11
  • 1970-01-01
  • 1970-01-01
  • 2014-11-30
  • 2011-07-14
  • 1970-01-01
  • 1970-01-01
  • 2011-05-02
  • 2011-11-14
相关资源
最近更新 更多