有沒有什麼神奇工具可以用來掃描爲PHP4編寫的源代碼,以突出顯示PHP5中不推薦使用的函數?我目前正在服務器上運行最新版本的PHP,並需要移植此代碼。那裏有什麼可以幫我一把嗎?用於突出顯示PHP4源中不推薦使用的函數的工具?
4
A
回答
5
如果您設置了錯誤報告級別以顯示它們,PHP 5.3將拋出一個E_DEPRECATED
警告。
+0
事情是我可以修復每個發生時的錯誤,但我正在尋找一種方式來掃描所有來源。我目前正在修復這些錯誤,但是當我測試軟件時,我可能會錯過一些可能不會出現的錯誤。 – 2009-07-13 18:04:56
0
appendices of the manual包含一些遷移信息,但我不認爲它包含您正在查找的內容。
單向(可能不準確,但可以使用)我想到的是每個PHP下載中包含的news.txt。我是writing a script atm,它解析這個文件,檢查不推薦使用的函數可能是我可以添加的東西。我正在研究另一個項目atm,但我想在更大的重建版本中添加這個功能。
1
我想自己做這樣的事情。使用的deprecated features in PHP 5.3.x這個名單,我做了一個正則表達式來搜索任何使用這些功能:
(?i:(call_user_method\(|call_user_method_array\(|define_syslog_variables\(|dl\(|ereg\(|ereg_replace\(|eregi\(|eregi_replace\(|set_magic_quotes_runtime\(|session_register\(|session_unregister\(|session_is_registered\(|set_socket_blocking\(|split\(|spliti\(|sql_regcase\(|mysql_db_query\(|mysql_escape_string\())
(不區分大小寫,每個函數名,包括左括號只是爲了避免誤報;「DL」會帶來。佔用大量噪音的其他方式)
如果你與find
和grep
的系統上,然後你可以只執行這樣的:
find <directory to search> -type f -name '*.php' -exec grep -R -P -H "<above regex>" {} \;
只是爲了讓一個更具體的例子,我只是用了以下內容:
find htdocs -type f -name '*.php' -exec grep -R -P -H "(?i:(call_user_method\(|call_user_method_array\(|define_syslog_variables\(|dl\(|ereg\(|ereg_replace\(|eregi\(|eregi_replace\(|set_magic_quotes_runtime\(|session_register\(|session_unregister\(|session_is_registered\(|set_socket_blocking\(|split\(|spliti\(|sql_regcase\(|mysql_db_query\(|mysql_escape_string\())" {} \;
看起來像我現在需要更換的session_register
和session_unregister
自己的幾個實例!
對於不推薦的INI指令和參數可以做同樣的事情。
相關問題
- 1. Python不推薦使用的函數
- 2. 用於環繞或環繞突出顯示文本的工具
- 3. 無法使用帶語法突出顯示的工具提示
- 4. 不推薦使用:mysql_connect()函數:注意
- 5. 遷移到不推薦使用的ldap函數時出錯
- 6. 如何找出iOS中爲什麼不推薦使用函數?
- 7. 推薦源代碼理解工具
- 8. 你使用/推薦什麼開源GIS工具?
- 9. 如何在Qt5中啓用不推薦使用的函數
- 10. 適用於較小應用程序的推薦報告工具?
- 11. 用於突出顯示節點中顯示的源代碼的模塊
- 12. Angularjs 1.4使用不推薦使用的jQuery .attr()函數
- 13. 用於突出顯示日期的工具提示CSS日期選取器
- 14. 如何在xcode 3.2.5中找到不推薦使用的函數?
- 15. CodeIgniter 3.x在PHP中不推薦使用的函數5.3.29
- 16. PHP 5.6中不推薦使用的函數
- 17. 如何替換jQuery Mobile中不推薦使用的函數 - updateHash
- 18. 用新函數替換許多php文件中不推薦使用的函數
- 19. C# - 用於繪製比賽支架的推薦SDK /工具包
- 20. 用於基準Ruby和Perl的推薦工具
- 21. PHP對不推薦使用的函數有什麼作用?
- 22. 用mysqli替換不推薦使用的mysql函數
- 23. intellij插件使用TreeClassChooserFactory不顯示推薦的類?
- 24. RRD工具圖突出顯示NAN值
- 25. php4 xml輸出不顯示html
- 26. 如何使用工具提示顯示不屬於highchart中系列的數據?
- 27. 如何擺脫GCC中不推薦使用的函數中的棄用警告?
- 28. 突出顯示textmate中的函數調用
- 29. 在gedit中,突出顯示括號內的函數調用
- 30. 用於獲取和顯示內容的推薦技術
不推薦使用的函數列表不夠用。如果接收到的參數不是預期的類型,那麼用於接受某些參數的某些函數現在會引發錯誤。 IIRC,array_merge()就是一個例子 - 它用來接受NULL參數;現在,如果任何參數不是數組,它會拋出一個錯誤。長話短說,確保從PHP 4遷移到5的唯一真正方法是完成測試。 – 2009-07-13 20:39:56
也不推薦分配新引用的返回值。這是一場噩夢。 – 2009-07-17 17:17:31