2010-02-18 33 views
2

背景:PHP允許提供者禁用函數(指令「disable_functions」)。因此,要了解您的項目是否在特定服務器上運行,您必須檢查:如何創建項目使用的所有內置PHP函數的列表?

  1. 使用什麼內置(=排除用戶定義的)函數是您將要部署的項目?
  2. 特定主機上的功能是否可用?

(問題(2)對結果(1)function_exists一個簡單的循環。)

爲了得到收穫工作(=一大部分是一套完整的內置上使用的功能開發服務器)可以創建一個功能列表get_loaded_extensions(),get_extension_funcs()get_defined_functions()(並訪問內置功能的「內部」數組)。

現在的問題:你將如何從你的(可能是數百個)源文件中提取/ grep項目中使用的內置PHP函數?

這可能是一個不錯的PERL工作或somethig這樣的。你會怎麼做?

+0

不要忘記:可能的解析器在評論中必須忽略單純提及的函數。 – initall 2010-02-18 14:00:56

回答

2

PHP標記器 - 也就是token_get_all() - 可能是最可靠的工具,因爲它使用PHP解釋器本身所具有的相同解析機制。

如果您正在尋找基於Perl的解決方案,phpxref有一個功能可以告訴所有已使用的內置函數:隨機示例here

+0

不錯的提示,我得看看代碼。 – initall 2010-02-18 13:58:37

相關問題