2016-03-22 6 views
1

Ich brauche eine Regex Zeichenfolge wie PHP Funktionsdefinitionen übereinstimmen:Regex übereinstimmen PHP Funktionsdefinition

function anyname(any, number, of, params) {

in Editoren wie Geany oder Notepad ++ und einen statischen Text einfügen (ofcourse PHP-Code) wie var_dump(debug_backtrace()); innen die übereinstimmenden Funktionsdefinitionen.

Da ich eine sehr große PDF-Klasse-Datei der Größe um 1.24MB debuggen muss und mehr als 60 Funktionsdefinitionen haben.

Kann jemand helfen?

+0

Verstehen Sie nicht, warum diese Frage abgelehnt wurde? Es könnte Entwicklern eine echte Hilfe sein, um n Live-Sites zu debuggen. Es macht keinen Sinn beim Downvooten. –

+0

Nun, indem ich die Klasse debuggen wollte, wollte ich wissen, welche Funktionen aufgerufen werden, wenn PDF-Klasse instanziiert und PDF erzeugt wird. Dazu muss ich 'var_dump (debug_backtrace)' in jede Funktion einfügen, da ich denke, dass "das schnell geht", war meine Intention hinter der Frage, ich konnte Regex in der Live-Site nicht testen, also fragte ich das, ob jemand es getan hätte Das vorher. –

Antwort

1

Wie wäre es damit:

function\s+.*?\)\s*{ 

ich einen groben Test gemacht und es funktioniert auf meinem Notepad ++.

EDIT

Wenn Sie diese mit dem Debug-Backtrace ersetzen müssen, dies tun:

Suche:

function\s+(.*?)\)\s*{ 

ersetzen:

function \1\) {\nvar_dump\(debug_backtrace\(\)\); 

mit Notepad Getestet ++ .

Erläuterung:

Die Regex selbst nichts Besonderes ist. Die .*? bedeutet einfach "Match irgendetwas, ungerecht". Es wird alles zusammenpassen, bis es eine schließende Klammer sieht und stoppt.

Während des Suchens und des Austausches ist die .*? in eine Klammer eingeschlossen, weil wir diese als die Texte herausnehmen müssen, die wir aufbewahren müssen, und dann in der Position \1 im Austausch ausfüllen.

+0

Danke für den Versuch zu helfen, es findet tatsächlich alle Funktionen, aber wie kann ich die übereinstimmenden Definitionszeilen durch Linien selbst zusammen mit einem Zeilenumbruch und einer neuen Zeile wie 'var_dump (debug_backtrace());' und den ganzen Rest ersetzen der Funktionscode bleibt auch erhalten? –

+0

Bitte erläutern Sie Ihre Antwort auch im Detail. –

+0

Yep fertig, Schau dir meine Antwort nochmal an –