create_function ab PHP 7.2 deprecated
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
-
Hallo, ich hoffe, dass mir jemand helfen kann. Ich bereite zurzeit ein kleines handgestricktes (nicht von mir) CMS auf PHP 7.2. vor. Dabei kommt zu dem folgenden Code
static function preparse_text($text) { $content = preg_replace_callback('/:\s*(\n)?\+{3,}([\S\s]*?)\+{3,}/', create_function('$match', 'return ": |\n ".preg_replace("/\n/", "\n ", $match[2]);'), $text); return $content; }
die Meldung, dass create_function deprecated ist. Ich habe bei https://stackoverflow.com/questions/48161526/php-7-2-function-create-function-is-deprecated auch gefunden, dass man an Stelle von create_function jetzt function verwenden soll. Das habe ich auch probiert, aber anscheinend mache ich ständig etwas falsch mit Maskierung des regulären Ausdrucks oder vielleicht auch, weil ich die Funktionsweise der anonymen Funktion nicht richtig verstehe/anwende. Falls mir jemand auf die Sprünge helfen kann wäre ich sehr dankbar.
Beitrag zuletzt geändert: 12.7.2019 15:27:50 von mein-wunschname -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
Grundsätzlich definierst du eine anonyme Funktion wie eine normale Funktion, mit dem Unterschied, dass du keinen Namen vergibst.
Heißt, dass du z.B.create_function('$a', 'return true;')
mitfunction ($a) {return true;}
ersetzt.
In deinem Fall müsstest du nur den Teil mit create_function:
create_function('$match', 'return ": |\n ".preg_replace("/\n/", "\n ", $match[2]);')
Mit folgender anonymen Funktion ersetzten:
function ($match) {return ": |\n ".preg_replace("/\n/", "\n ", $match[2]);}
Auch das preg_replace sollte in der anonymen Funktion problemlos funktionieren.
Beitrag zuletzt geändert: 14.7.2019 12:51:22 von witze-dschungel -
Danke, klappt perfekt.
-
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage