2013-02-26 42 views
0

有一個抽象的方法問題,我還沒有找到解決方案。 假設你爲一個類似WordPress的CMS構建了一個插件,我使用了一個叫做GetSimple的MCMS。 現在,在該插件中..當用戶點擊按鈕時...兩個外部php文件的代碼運行並將其輸出集中到一個靜態文件..說一個HTML或CSS文件。如何運行外部php文件並將其輸出放入字符串中?

然後在這種情況下......你如何(在插件中)運行一個外部php文件而不影響當前頁面,然後將該輸出作爲一個字符串放入一個變量中。 。爲另一個php文件重複此操作...然後將兩個字符串輸出合併,然後將它們放入單個靜態文件中?

這已經證明對我來說是一項非常艱鉅的任務。 有關更多詳細信息,您可以看到此問題: https://stackoverflow.com/questions/15080163/how-to-create-a-file-with-php

那麼你會如何去做這件事? 我正在考慮將每個文件的輸出保存爲單獨的xml文件然後合併這些xml文件的可能性......但問題仍然是運行外部php,並將該數據放在某處而不會影響當前頁面PHP。

+0

使用AJAX,從一個php文件獲取輸出,然後將其他文件放到一起。 – kennypu 2013-02-26 03:06:55

+0

@kennypu然後問題我認爲這使得這不可能的是PHP文件不能直接從用戶訪問...它只能訪問服務器端。內置於CMS的安全性可以做到這一點......這就是爲什麼我必須讓內容類似於include()來運行。但沒有真正包括它在當前的PHP頁面... shell_exec()可能適用於..我會運行它如果只有$ _POST – 2013-02-26 03:48:10

回答

1

如果你可以生成服務器端的響應,你可以簡單地使用例如shell_exec()或使用Symfony2 Process Component運行的PHP腳本,然後收集利用file()file_get_contents()功能的結果。

如果你需要在點擊按鈕時產生這些東西,你必須通知服務器來處理這些任務,並且要做到這一點,你需要使用上面告訴你的方法來調用這些腳本。

+0

我可以做到這一點,如果$ _POST而不是AJAX的權利?你有使用shell_exec()來做這個的代碼塊的例子嗎? – 2013-02-26 03:50:51

+0

查看PHP文檔,它非常簡單 - 'shell_exec('');'。你可以在POST請求上做,但AJAX對客戶更方便。 :) – 2013-02-26 03:57:05

+0

我結束了剛剛製作第二個文件的變量替換標籤,並使用file_get_contents來收集文件和str_replace更改標籤變量,然後用file_put_contents保存。沒有任何問題,並完成我所需要的! :d – 2013-02-27 11:03:38

相關問題