2011-05-28 36 views
4

我正在處理的這個php腳本有一百萬包含,我試圖找到常量TEXT_PRODUCT已被定義(哪個文件名和行號)在這個possbile?如何找到已設置php var或常量的位置?

+0

它是'TEXT_PRODUCT'還是'$ TEXT_PRODUCT?',因爲這可能會給你一個線索,因爲常量(大部分)是早定義的 – 2011-05-28 21:41:17

+1

有了'grep'也許:http://unixhelp.ed.ac.uk/CGI/ man-cgi?grep – 2011-05-28 21:43:43

+0

我認爲任何IDE都可以讓它成爲可能並且非常容易。查看變體:http://stackoverflow.com/questions/6166/any-good-php-ide-preferably-free-or-cheap – 2011-05-28 21:43:50

回答

10

如果您想檢查一次定義的位置,請在腳本開始處將TEXT_PRODUCT定義爲。因此,無論何時PHP腳本試圖在任何文件中再次定義它,它都會給出先前定義的通知級錯誤。 但你必須定義自己的錯誤處理,以獲得準確的行數和文件

 <?php 

    function customeHandler($errno, $errstr, $errfile, $errline){ 
     echo "<b>My NOTICE</b> [$errno] $errstr<br />\n"; 
     echo "At line ", $errline , "<br />"; 
     echo "At file ", $errfile , "<br />";; 
      return true; 
     } 

     $old_error_handler = set_error_handler("customeHandler"); 

     define("TEST",3); 

所以每當我們再次在任何文件中定義相同的變量,它會在屏幕上顯示的通知級別的錯誤,你可以得到的文件名以及線路號碼。使用這個。

+2

哇謝謝!你是個天才!!!! – 2011-05-31 14:33:07

3
grep -r 'define("TEXT_PRODUCT"' *