2011-07-03 197 views
1

我们正在尝试创建一个将在Linux上运行的项目。但我们希望看到浏览器的结果。我们希望使用PHP,但我们并不确定如何在这两种环境之间共享数据。我们不希望使用MySql或任何其他的dbms,因为它不仅仅为1或2数据使用ram。在bash和php之间共享数据

所以问题是, “我们希望在bash和PHP之间共享1个或最多2个数据,我们如何在没有第三方应用程序或服务器的情况下做到这一点?”

感谢答案 巴里斯

+0

其实,问题不在于PHP,但击,这就是为什么我在这里写的。问题是,当我尝试将结果写入文件时,有时需要打开Nx100次并将其写入该文件。这会产生硬盘的性能问题。所以我正在寻找一种直接使用Ram的解决方案,并通过RAM在bash和PHP之间共享数据。 –

回答

0

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

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

0

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

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

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

+0

实际上这个问题不是关于PHP,而是Bash,因此我在这里写了它。问题是,当我尝试将结果写入文件时,有时需要打开Nx100次并将其写入该文件。这会产生硬盘的性能问题。所以我正在寻找一种直接使用Ram的解决方案,并通过RAM在bash和PHP之间共享数据。 –

+0

您已经在此解决方案中使用了一些PHP:使用PHP编写的内容越多,您就可以执行的操作越多,因为PHP是带库的真正编程语言 - 例如,建议您可以使用memcached。你还没有说过每秒需要做多少次写入,或者它们有多大。无论如何,这真的应该在Stack Exchange上。 – 2011-07-08 06:09:26

1

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

在PHP文档的反引号操作符的例子是:

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