PHP4 用に作成されたソース コードをスキャンして、PHP5 の非推奨関数を強調表示するために使用できる魔法のツールはありますか? 現在、サーバーで最新バージョンの PHP を実行しており、このコードを移植する必要があります。私に手を差し伸べてくれるものはありますか?
1552 次
3 に答える
5
E_DEPRECATED
エラー報告レベルを表示するように設定すると、PHP 5.3 は警告をスローします。
于 2009-07-13T17:39:02.447 に答える
1
こんなことを自分でやりたかった。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ディレクティブとパラメータについても、同じようなことができます。
于 2012-04-25T15:34:59.553 に答える