PHP deprecated functions finden

Webbasierter Verzeichnisscanner nach PHP-Code; findet Dateien die von PHP 5.3 .. 5.5 als veraltet vermerkte Funktionen enthalten.

Einleitung

In PHP 5.x sind einige Funktionen markiert, die in der nächsten Version nicht mehr existieren werden. Dies führt zu ensprechenden Meldungen innerhalb der Webseite.
Um alle Dateien eines Projekten zu finden, das veraltete Funktionen beinhaltet wurde dieses Skript geschrieben. Es zeigt von einem Startverzeichnis alle Dateien und markiert davon PHP Dateien grün (als in Ordnung) bzw. rot (wenn veraltete Funktionen gefunden wurden).
Bei fehlerhaft markierten Dateien kann man den Sourcecode einsehen, wo die entsprechenden Stellen im Code hervorgehoben wurden.

Anm.: Das Skript liefert Anhaltspunkte: es sucht per REGEX nach den veralteten Funktionsnamen und INI-Variablen von PHP 5.3 bis PHP 5.5. Es enthält jedoch keinen Parser und erkennt daher z.B. nicht, ob die gefundene Funktion in einen Kommentar gesetzt wurde.
Auch sucht es nicht nach veralteten Features.

  • Assigning the return value of new by reference
  • Call-time pass-by-reference

Ich hoffe, es ist dennoch für erste Analysen hilfreich ;-)

Das Skript ist kostenlos (GNU GPL 3).

 

Letztes Update:

02.06.2015: v1.7 GUI with jQuery

Screenshots

Installation

Download

find_php_deprecated.zip

Verwendung

  • Kopiere die im ZIP-File enthaltene PHP Datei und das JSON gemeinsam in ein Webroot oder ein beliebiges Unterverzeichnis.
  • Öffne die PHP-Datei im Webbrowser, z.B. http://localhost/php/find_deprecated.php
  • Nun kannst du in den Einstellungen oben die PHP-Version setzen; alles andere sollte intuitiv sein.
  • Du erhältst eine Liste aller Dateieinträge
    • DIR: Verzeichnis-Einträge - Klicke darauf, um den Scan in diesem Verzeichnis zu wiederholen.
    • SKIP: [Dateiname]; dies ist keine PHP-Datei und Analyse wurde übersprungen
    • OK: PHP-Datei, in der keine als verlaltet markierte Funktion gefunden wurde.
    • ERROR: PHP-Datei, in der eine als verlaltet markierte Funktion gefunden wurde. Klicke auf den Dateinamen, um deren Quellcode mit hervorgehoben Markierungen der beanstandeten Funktionen zu sehen.

Was du vermeiden solltest:

  • Scanne keine grossen Verzeichnisse mit welche mit sehr vielen oder grossen Dateien. Die Suche wird dann recht lange dauern
  • Verwende das Skript nur in der Entwicklungsumgebung und nicht auf einem produktiven System. Setze allenfalls auch einen Passwort- oder IP-Adressen-basierten Schutz ein.

english readme

- donwload
find_php_deprecated.zip
- Copy the php and th json file below a webroot. - Open it with your webbrowser, i.e. http://localhost/php/find_deprecated.php - You get a list of all dirctory entries - directories - click ist to start the scan in this directory - SKIP: non php files - OK: php file; no deprecated function was found - ERROR: php file; no deprecated function was found - click the filename to see its source code and the highlighted deprecated function - DO NOT: - scan a directory with large or many files - it takes a lot of time - use it in a production environment. Make the scan in your development environment. Use a protection (ALLOW DENY rule in apache based on users or ip address) if necessary. remarks: This script searches for deprecated function names and INI values with REGEX expressions. It does not contain a parser and cannot detect commented parts of a source. It does NOT search for these features: - Assigning the return value of new by reference - Call-time pass-by-reference But I hope it is a help for a first analysis.