在bash和php之间共享数据

时间:2011-07-03 09:41:06

标签: linux php bash

我们正在尝试创建一个可以在linux上运行的项目。但我们希望从浏览器中看到结果。我们想要使用PHP,但我们不确定如何在这两个环境之间共享数据。我们不想使用MySql或任何其他dbms,因为不要仅使用ram来获取1或2个数据。

所以问题是; “我们希望在bash和PHP之间共享1个或最多2个数据。如果没有第三方应用程序或服务器,我们怎么能这样做?”

感谢您的回答 巴里斯

3 个答案:

答案 0 :(得分:1)

我假设你有一个bash脚本,你想从PHP运行它并以某种方式处理输出。 PHP有several functions来容纳它。

PHP文档中的反引号运算符示例是:

<?php
$output = `ls -al`;
echo "<pre>$output</pre>";
?>

答案 1 :(得分:0)

您的问题并不完全清楚您要尝试做什么......但一种可能的解决方案是将您的数据写入一两个文件。 PHP或您的cli环境可以读取/写入文件以获取/设置数据。请注意,如果两个环境都希望编写数据,则需要实现某种锁定机制。

您还可以使用类似memcached的内容,它可以为您提供基于内存的键/值存储,而无需完整RDBMS解决方案的“开销”。

答案 2 :(得分:0)

这实际上是一个Stack Exchange问​​题,但PHP在CLI模式下运行良好,可以做任何bash做的事情,而无需额外的努力。因此,我将使用PHP作为后台或CLI进程(如果您只想使用PHP作为包装器,则可以根据需要调用bash shell脚本),然后也将PHP用于Web部件。如果需要,这两部分可以共享PHP代码,特别是从共享文件读取/写入的部分。

如上所述,锁定此文件将是主要挑战 - 使用mkdir创建锁定目录(因为它是原子的)将是一种方式,但您还需要确保可以清除锁定。

更新:如果你想写共享的RAM而不是文件,这种方法也可以工作 - 你可以使用PHP中的memcached或类似的东西,但是没有办法从bash那里做到这一点。