2011-07-03 196 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>"; 
?>