-1

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

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

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

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

还有其他方法吗?

4

3 回答 3

1

看看php 序列化和这个perl 模块。它是一种在两种语言之间交换数据结构作为简单字符串的简单方法。

于 2012-06-07T20:31:33.230 回答
1

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

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

于 2012-06-07T19:48:40.817 回答
1
$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));

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

于 2012-06-07T20:52:33.343 回答