Hallo und gutes Neues,
Ich habe ein uraltes wordpress (2.0), muss aber die PHP-Version aktualisieren wg provider.
Bei upgrade auf PHP 5.6 kommt die Fehlermeldung:
[INDENT]Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /kunden/xxx/webseiten/wp-includes/functions-formatting.php on line 76[/INDENT]
Dort steht:
[INDENT]$pee = preg_replace('!(<pre.*?>)(.*?)</pre>!ise', " stripslashes('$1') . stripslashes(clean_pre('$2')) . '</pre>' ", $pee);[/INDENT]
Suche ergab, dass man eine callback-Funktion einarbeiten muss. Das kann ich nicht. Vielleicht hat das ja jemand schon mal gefixed?
Auf dieser Seite steht der Weg, aber da ich kein PHP kann, kann ich es an meine Situation nicht anpassen:
https://www.ryadel.com/en/php-fix-war…ted-error-php7/
Vielen Dank für Hilfe!
pre_replace /e deprecated bei PHP 5.6
-
-
- Gerade eben
- Anzeige
Hallo!
Wenn du gerade an deiner Website arbeitest oder dein aktuelles Hosting überdenkst: Wir betreiben mit NetzLiving eine Hosting-Plattform, die speziell auf Performance, Sicherheit und einfache Verwaltung ausgelegt ist.
- ✔️ Schnelle Ladezeiten (optimiert für WordPress & Co.)
- ✔️ Deutsche Server & DSGVO-konform
- ✔️ Persönlicher Support (kein 0815-Ticket-System)
-
hy,
erstelle mal ein backup.
und mache schritt für schritt ein update.
auch für dein theme und plugins.nur wordpress zu fixen macht keinen sinn, da früher oder später auch problem mit den plugins und Theme enstehen werden.
-
danke Henk, aber das will ich vermeiden. Die Seite soll eigentlich nur noch stehen, ganz selten wird mal was eingepflegt. Wordpress upgrade ist mir zu aufwendig. Für PHP 5.6 kommt nur dieser fehler, da muss man nur diese eine funktion auf callback ummodeln, und das kann ich nciht...
-
Die meisten Hoster schalten aber schon PHP 5.6 ab.
Du musst eh bald auf PHP7 hoch und da wird so einiges nicht laufen.
Geschweige den Sicherheitsaspekt.
-
meiner noch nicht... bitte nur diese eine Zeile umformen!
-
Die meisten Hoster schalten aber schon PHP 5.6 ab.
.. nicht nur das, viele verlangen dann auch richtiges Geld für den 'extended support' -
meiner nicht...
-
hier die Lösung (h/t Dion Designs)
$pee = preg_replace_callback('!(<pre.*?>)(.*?)</pre>!is', function($matches) {
return $matches[1] . clean_pre($matches[2]) . '</pre>';
}, $pee);
Jetzt mitmachen!
Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!