4

PHP4 用に作成されたソース コードをスキャンして、PHP5 の非推奨関数を強調表示するために使用できる魔法のツールはありますか? 現在、サーバーで最新バージョンの PHP を実行しており、このコードを移植する必要があります。私に手を差し伸べてくれるものはありますか?

4

3 に答える 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_registersession_unregister自分のいくつかのインスタンスを置き換える必要があるようです。

非推奨のINIディレクティブとパラメータについても、同じようなことができます。

于 2012-04-25T15:34:59.553 に答える
0

マニュアルの付録には移行に関する情報が含まれていますが、あなたが探しているものは含まれていないと思います。

私が考えた 1 つの方法 (不正確かもしれませんが、使用できる) は、各 PHP ダウンロードに含まれる news.txt です。私はこのファイルを解析するスクリプトatm を書いていますが、非推奨の機能をチェックする機能を追加できる可能性があります。私は別のプロジェクト atm に取り組んでいますが、より大きな再構築バージョンでこの機能を追加したいと考えています。

于 2009-07-13T20:15:54.190 に答える