【问题标题】:Can a PHP script unserialize a Storable file created with Perl?PHP 脚本可以反序列化使用 Perl 创建的可存储文件吗?
【发布时间】:2009-02-20 12:54:51
【问题描述】:

PHP 脚本能否反序列化使用 Perl 创建的可存储文件?

【问题讨论】:

    标签: php perl serialization storable


    【解决方案1】:

    不,但您可以使用PHP::Serialization 从 Perl 转储 PHP 可读数据。您可能还想选择更标准的东西,例如 YAML 或 JSON。几乎任何语言都可以理解这些。

    【讨论】:

    • 好吧,如果您将 Storable 重写为 PHP 库,您可以做到这一点,不是吗? :)
    • 祝你好运将 Storable 的概念映射到 PHP 上(就像有福的参考一样)。
    【解决方案2】:

    您可以使用 JSON 作为两种语言之间的通用语言,我建议在 Perl 方面使用JSON::XS(在 C/C++ 中实现子例程)进行表演,然后您可以使用this extension.

    【讨论】:

      【解决方案3】:

      PHP 是图灵完备的,答案不是“不”,而是“不是本机或任何知名的公共模块”。

      【讨论】:

      • 嗯...不。阅读问题。 YAML 是一种在 PHP 和 Perl 之间传输序列化数据的解决方案;它不是将 Perl 的 Storable 模块中的序列化数据读取到 PHP 中的解决方案
      • 好吧,那么你对早期的踢出没有帮助。顺便说一句,感谢所有投反对票的帖子,每个帖子包含的有用细节是您早期退出的 3 倍。)
      • 这有点荒谬,因为它就在你面前,我在其他两个小时后写了我的答案。但我猜你已经证明了阅读理解问题。我写了我写的东西,因为接受的答案“不”不是真的。
      • Early kick-out="Test. No? -> Done."就像一个流程图。实际上,我的阅读理解很好——当我重读一个来源时。当我读完这一页时,我已经忘记了实际的上下文。你帮助我意识到这个问题——正如所问的——没有得到回答。
      • 啊,我明白了。那么,很高兴为您服务。我想这一切最终都解决了。
      【解决方案4】:

      正如 Chaos 指出的那样,您特别要求 Storable,因此切换到 YAML(或 JSON)可能是可能的,但可能不会。这可能会使其进入YAML(甚至JSON):

      $output_format = 'YAML';
      popen( "perl -MStorable -M${output_format}::Syck=Dump -e 'print Dump( retrieve( q{$storable_file_path} ))'", "r" );
      

      【讨论】:

      • 如果你要为每个请求执行 Perl,你为什么要从 PHP 开始?
      • Jon (rockway),谁说过每次请求都执行它?您可以替换 -MPHP::Serialization=serialize 并打印 serialize(retrieve( ... )),您可以将该字符串写入文件,或者无论如何您仍然必须读取它。
      猜你喜欢
      • 2010-12-23
      • 2016-09-19
      • 1970-01-01
      • 2021-05-05
      • 2019-11-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多