2015-05-11 47 views
1

我有一個.php文件在客戶的網站上發送郵件。PHP:如何檢測哪個文件需要另一個文件?

這絕對是這個網站的一部分,我無法理解這個腳本是從哪裏調用的(它不是一個類,它是純php)。

有沒有在PHP中檢測哪個文件正在調用這個文件的方法?

我正在做一個在整個網站的文件中找到,並沒有此文件的跟蹤。可能是因爲某些mysql配置而被調用,但是,實際上,我需要找到最終包含此php文件的文件。

注:只是爲了避免進一步的混亂,我需要在運行

+0

當然。只需重命名/刪除文件,您將看到哪個文件吐出錯誤。 –

+5

你可以使用['debug_backtrace()'](http://php.net/debug_backtrace)和['get_included_files()'](http://php.net/get_included_files)。 –

+0

通過PHP.ini禁用郵件功能?如果該文件被惡意地放在那裏,我懷疑是否簡單的查找/替換會起作用。 –

回答

2

使用Linux命令行來獲取這些相關信息。例如grep -r是非常有幫助的:

grep -r 'a.php' source_folder 

如果你喜歡的IDE,使用IDE的遞歸搜索功能。

如果包含文件的名稱是在運行時生成的,則簡單的搜索將失敗。在這種情況下,您可以使用功能debug_backtrace()get_included_file()獲取更多信息。

我不會錯過提及可用於調試應用程序或生成包含所有函數調用和參數的跟蹤文件的xdebug,這可以通過使用。

+0

對不起,我可以在文件中查找。我需要一種方法來print_our視頻哪個php文件正在對象中運行腳本。 – realtebo

+1

當然有'grep'不能幫忙的情況。就像這個名字由某個東西組成或來自一個數據庫一樣。 (順便說一句,phpmyadmin提供我舒適的搜索跨所有表)。其他人則建議'debug_backtrace()'。你試過了嗎? – hek2mgl

+1

是的,方法是'debug_backtrace()'和'get_included_file()',因爲我需要這個信息在runime – realtebo

相關問題