【问题标题】:perl to php data passing [closed]perl到php数据传递[关闭]
【发布时间】:2012-06-11 21:56:28
【问题描述】:

我有一个 perl 文件和一个 php 文件。 我需要将 perl 文件中的大哈希传递给 php。

perl 文件生成的数据需要存储在一个文件中。 这个 php 必须读取这个文件并修改它。 这个修改后的文件需要perl读回并做一些其他的操作。

要共享的数据是一个 perl 哈希,它非常大,并且有很多内部数组。

我试图将哈希存储到 json 并在 php 中读取它,但我失败了。

还有其他方法吗?

【问题讨论】:

  • 可以在MongoDB中存储数据
  • 字符串“i failed”不是我所知道的任何编程语言的内置错误消息。
  • 有无数种方式。 JSON 是最简单的。获取有关 JSON 问题的帮助。

标签: php xml json perl sqlite


【解决方案1】:

对于让多个源访问同一个数据存储,数据库是最典型的选择,认为文本文件可以同样工作。

所以要回答您的问题 - 是的,还有其他创建公共数据存储的方法 - DB 和 DB 库、CSV、Excel 等。对于每种选择,您都需要熟悉 perl 和 PHP api 才能访问它- 你可能会发现这比用纯文本格式的 JSON 更容易。

【讨论】:

  • 当然,如果您正在寻找当前项目的具体帮助,您需要发布代码和确切的错误消息等。
【解决方案2】:

看看php serialization 和这个perl module。 它是一种在两种语言之间以简单字符串形式交换数据结构的简单方法。

【讨论】:

    【解决方案3】:
    $data = json_decode(file_get_contents('my_data.json'), true);
    
    # PROCESS DATA
    
    file_put_contents('my_data.json',
                      preg_replace('/\\\\u([a-f0-9]{4})/e',
                                   'iconv("UCS-4LE",
                                          "UTF-8",
                                           pack("V",
                                           hexdec("U$1")))',
                      json_encode($data)));
    

    preg_replace 处理 PHP 通常为 unicode 字符输出的丑陋的“\uXXXX”序列。如果你有 PHP 5.4+ 这应该可以代替:

    file_put_contents('my_data.json', json_encode($data, JSON_UNESCAPED_UNICODE));
    

    正如其他答案之一所述,如果您需要进行大量阅读和写作,请考虑使用数据库。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-03-15
      • 1970-01-01
      • 1970-01-01
      • 2013-07-17
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多