【问题标题】:How can I include the output of a Perl script into a PHP page?如何将 Perl 脚本的输出包含到 PHP 页面中?
【发布时间】:2010-11-05 19:21:21
【问题描述】:

我们被要求在新站点上支持一些相当旧的 Perl 表单,因为我们使用的是基于 PHP 的 CMS,因此我们需要将 Perl 脚本包含到我们的新 CMS 中。

我尝试了一些 shell_exec,但它被禁用了。有人有什么想法吗?

【问题讨论】:

  • 为什么?如果你有一些被 Perl 脚本覆盖的 URL,为什么你需要那些在 cms 控制下的 URL?
  • 好问题,我们有一些联系表单提交到一个可怕的数据库应用程序中,在同一页面上,我们需要客户端能够通过 CMS 更改内容。如果有什么方法我不能使用 Perl,我会全力以赴 :)
  • 这意味着表单本身不是由那些 Perl 脚本生成的?
  • 不幸的是,perl 正在制作表单,为目标 URL 创建一个唯一 ID(即使表单已提交或未提交)
  • 那我看不出一个 php cms 怎么可能控制表单的内容。您将不得不深入研究 Perl,撕掉 html 并将其置于 cms 控制之下。

标签: php perl forms include


【解决方案1】:

Perl 扩展

有一个可用于 PHP 的 Perl 扩展。

Zend 开发者专区的一篇文章详细介绍了它here

该扩展程序允许您:

  • 加载和执行 Perl 文件
  • 评估 Perl 代码
  • 访问 Perl 变量
  • 调用 Perl 函数
  • 实例化 Perl 对象
  • 访问 Perl 对象的属性
  • Perl 对象的调用方法

您可以使用以下命令从 CVS 获取它:

$ cvs -d :pserver:cvs.php.net:/repository co pecl/perl

此处列出了运行 Perl 脚本的示例:

示例 1 (test1.pl)

print "Hello from Perl! "

示例 1 (test1.php)

<?php
print "Hello from PHP! ";
$perl = new Perl();
$perl->require("test1.pl");
print "Bye! ";
?>

【讨论】:

  • 啊,这看起来是一个完美的解决方案,除了我不确定我们是否可以将任何扩展加载到主机上:(
【解决方案2】:

如果您的 Perl 脚本正在使用您的客户应该能够更改的表单创建页面,那么您就不走运了。您可能会想出一些包含 Perl 脚本输出的 PHP 页面,但您永远无法将该页面上的任何更改反馈回 Perl 脚本。

【讨论】:

    【解决方案3】:

    php apache 函数 virtual() 怎么样? http://php.net/manual/en/function.virtual.php 我觉得这个和 mod_rewrite 的结合是可行的

    【讨论】:

    • 要批评或要求作者澄清,请在他们的帖子下方留言。您是否验证了您提出的解决方案,或者您只是认为它可能有效?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-05-29
    • 2011-06-04
    • 2020-08-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多