Frage

Gibt es magische Tools, mit denen ich den für PHP4 geschriebenen Quellcode scannen kann, um verwertete Funktionen in PHP5 hervorzuheben? Ich führe derzeit die neueste Version von PHP auf einem Server aus und muss diesen Code portieren. Gibt es da draußen etwas, das mir die Hand geben kann?

War es hilfreich?

Lösung

PHP 5.3 wirft eine E_DEPRECATED Warnung Wenn Sie Ihre Fehlerberichterstattung festlegen, um sie anzuzeigen.

Andere Tipps

Ich wollte so etwas selbst machen. Verwenden dieser Liste von Veraltete Merkmale in PHP 5.3.x, Ich habe einen Regex gemacht, um nach Verwendung dieser Funktionen zu suchen:

(?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\())

(Fall unempfindlich, mit jedem Funktionsnamen, einschließlich der öffnenden Klammern, nur um falsch positive Ergebnisse zu vermeiden. "DL" würde sonst viel Lärm auffordern.)

Wenn Sie auf einem System sind mit find und grep, Sie könnten dann einfach so etwas ausführen:

find <directory to search> -type f -name '*.php' -exec grep -R -P -H "<above regex>" {} \;

Nur um ein konkretteres Beispiel zu machen, habe ich gerade Folgendes verwendet:

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\())" {} \;

Sieht so aus, als müsste ich jetzt ein paar Fälle von ersetzen session_register und session_unregister mich selbst!

Das Gleiche könnte für veraltete INI -Richtlinien und Parameter getan werden.

Das Anhänge des Handbuchs Enthält einige Migrationsinformationen, aber ich denke nicht, dass es enthält, wonach Sie suchen.

Eine Möglichkeit (die ungenau sein könnte, aber verwendet werden könnte), an die ich dachte, dass die Nachrichten in jedem PHP -Download enthalten sind. Ich bin ein Skript schreiben ATM, der diese Datei analysiert und nach veralteten Funktionen prüft, könnte etwas sein, das ich hinzufügen könnte. Ich arbeite an einem anderen Projekt -Geldautomaten, aber ich möchte in der größeren umgebauten Version Funktionen dafür hinzufügen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top