2011-08-30 55 views
0

需要一些幫助。我有一個C++庫用於通過tty與嵌入式模塊(ArchLinux)進行通信。這個庫是用swig編譯/轉換成php的。TTY,SWIG和PHP

現在的問題是,用PHP編寫並運行在命令行中的一個樣本程序按預期執行,但當相同的代碼被用作一個網頁的部分功能,它未能執行。

我根據我有限的Linux知識的假設是,TTY需要才能運行這就是爲什麼它不能作爲一個網頁的一部分運行控制檯?

沒有人有任何想法,我怎麼能得到這個工作?我已經閱讀了關於使用posix_ttyname的一些信息,但是我似乎找不到任何可以證明其用法的代碼示例。

我附上違規C++文件與測試main.php其中工程審查一起。

謝謝大家

http://www.mediafire.com/?ctblcvsy86mdg8p

+0

當代碼執行失敗時,您是否收到錯誤消息?檢查Apache日誌... – DaveRandom

+0

我沒有看到文件或鏈接...你確定你添加了他們嗎 – Fraser

+0

對於丟失的文件的道歉。我編輯了這個問題來附加它們。歡呼聲幫助 – Bernard

回答

0

$argv變量僅當腳本是從CLI調用。如果你不想改變腳本,以便它可以通過網頁被調用,您可以嘗試從另一個腳本調用它作爲

exec('main.php param'); 

就像你在命令行中執行。

+0

感謝您的聯繫,main.php文件只是一個示例,顯示了我打算做的事情。 '$ argv'只是一個字符串參數,所以即使字符串參數相同,使用填充的argv編寫序列也無法運行。我不能使用exec,因爲我需要初始化後處理ZigbeeControl。乾杯 – Bernard

+0

無論如何調用,您仍然會在main.php中擁有ZigbeeControl的實例。如果你想讓腳本更面向Web,可以通過'$ _GET'傳遞參數。 – Hnatt

+0

嗨Hnatt,我附上了一個示例項目,用它的評論[鏈接]的預期方式(http://www.mediafire.com/?9rmdqqjk41b6agd)。你可以找到這是zigbee/application/views/header_view.php。我不能添加這樣的文件,因爲它們是商業敏感的。我將嘗試在標準發行版上運行此功能,以查看它是否有所作爲。乾杯 – Bernard