2013-04-29 40 views
0

有沒有辦法在PHP中覆蓋include函數(include,include_once,require,require_once等)?我希望能夠在腳本中包含文件之前做一些代碼。我正在開發一個允許安裝插件的系統,但我不希望插件打開一個或多個核心文件並查看其內容。所以我希望能夠使用include函數(尤其是file_get_contents())來阻止這些文件,但我顯然不能簡單地禁用這些函數。在PHP中重寫包含函數?

我曾經想過,只是改變了所有者/權限對這些文件,但Apache需要讀/執行權限,這些所謂自動,我們可以使用的file_get_contents得到他們的內容();

有沒有一種方法可以做到這一點?或者我正在看這個錯誤的方式?

非常感謝。

+0

我覺得你很尷尬。你將不得不相信你的插件開發人員。 – mpen 2013-04-29 15:28:02

回答

1

如果值得花費處理能力,您可以使用fopenfile_get_contents作爲文本讀取PHP文件並搜索禁用函數,然後根據結果包含或忽略它們。

+0

這是一個好主意。處理能力是不是真的在考慮到該系統將在多臺服務器架構(開發/測試/生產)的擔憂。我想我會建立這樣說:有開發服務器批准該插件,然後將它們推到測試和生產線的服務器。 謝謝! – 2013-04-29 15:55:19