如何将Perl中的url或变量传递给PHP?

时间:2010-10-28 18:11:14

标签: php perl variables

我有两个现有的脚本可以作为个人使用。

主要脚本是Perl。我希望从Perl脚本中的sub执行PHP脚本。

通常,PHP脚本只是通过直接网址运行,例如http://me.com/phpscript.php?foo=bar

我想从Perl调用PHP脚本并传递foo var所以,我不需要用我的浏览器点击PHP脚本来处理数据。

我没有足够的才能将PHP脚本重写为Perl。

我试过exec(“http://me.com/phpscript.php?foo=bar”);并包括和系统无济于事。

我已阅读并搜索过但是,只找到了从PHP调用Perl的解决方案。

我非常感谢我在这里一直很好的指导。

4 个答案:

答案 0 :(得分:1)

似乎LWP :: UserAgent应该适用于这种情况。

require LWP::UserAgent;

 my $ua = LWP::UserAgent->new;
 $ua->timeout(10);
 $ua->env_proxy;

 my $response = $ua->get('http://me.com/phpscript.php?foo=bar');

 if ($response->is_success) {
     print $response->decoded_content;  # or whatever
 }
 else {
     die $response->status_line;
 }

答案 1 :(得分:0)

如果脚本位于本地文件系统上,您应该能够使用php解释器和文件路径直接执行它。要通过网络访问它,请使用LWP包。

例如:

exec('/usr/bin/php', 'myscript.php', @arguments);

请注意,命令行参数的处理方式与URL参数不同;您的PHP脚本可能需要修改才能正确使用它们。

答案 2 :(得分:0)

如果添加#!PathToPhp

,可以直接运行php文件
  ./myscript.php

在使用argc或argv或args的文件中,你可以获得传递给这个文件的参数,最基本的是args

  #!/bin/php
  <?php
  foreach($args as $key => $value){
   echo "\n".$key.":".$value;

答案 3 :(得分:0)

有一个CPAN包,旨在提供PHP和Perl之间的桥梁:

  

此类封装了嵌入式PHP5解释器。它为PHP解释器中声明的所有函数提供代理方法(通过AUTOLOAD),将Perl数据类型透明转换为PHP(反之亦然),以及PHP类似地调用Perl子例程并访问Perl符号表的能力。 / p>      

这个包的目标是构建一个跨越式桥,用于并行运行PHP代码和Perl代码。

不确定这是多么稳定。参见