speedo81
Goto Top

Fehler beim Aufrufen der Shop Seite

Guten Tag wehrte Gemeinschaft,

im Rahmen der Shopaktualisierung unserer Kunden, sind wir leider gezwungen unseren Webserver zu wechseln. Dieser, gibt früher als gedacht, so langsam den Geist auf.
Der erste Shop verlief problemlos, beim 2./3. kam es dann zu einem kleinen Problem.
Wenn ich Seite aufrufe, dann erscheint im oberen Bereich mehrmals die Warnung:
Deprecated: preg_replace(): The /emodifier is deprecated, use preg_replace_callback()instead in /html/includes/modules/metatags.php on line 182

Nach meiner Recherche ist seit PHP Version 5.5.0 "preg_replace()" veraltet und sollte mit dem Zusatz "_callback" verwendet werden. Dies habe ich gemacht. Anschließend bekam ichfolgende Warnung:

Warning: preg_replace_callback(): Requires argument 2, 'chr('\1')', to be a valid callback in /html/includes/modules/metatags.php on line 182

und unter den 15 Zeilen, mit der gleichen Warnung, ist die normale Shopseite.

Der Code der hinter der Warnung steckt ist folgender:

function metaNoEntities($Text){
if (version_compare(PHP_VERSION, '5.3.4', '<')) {
$translation_table = get_html_translation_table(HTML_ENTITIES,ENT_QUOTES);
} else {
$translation_table = get_html_translation_table(HTML_ENTITIES,ENT_QUOTES,strtoupper($_SESSION['language_charset']));
}
$translation_table = array_flip($translation_table);
$Return= strtr($Text,$translation_table);
return preg_replace_callback( '/&#(\d+);/me',"chr('\\1')",$Return);
}

code

-PHP Version neuer Webserver - 5.6 (latest FPM)

Kann mir einer sagen was ich da noch anpassen muss damit es wieder funktioniert? Ich glaub ich steh auf dem Schlauch.

Viele Grüße
Speedo

Content-Key: 493319

Url: https://administrator.de/contentid/493319

Ausgedruckt am: 28.03.2024 um 18:03 Uhr

Mitglied: Vision2015
Vision2015 10.09.2019 um 12:42:58 Uhr
Goto Top
moin....
Zitat von @speedo81:

Guten Tag wehrte Gemeinschaft,

im Rahmen der Shopaktualisierung unserer Kunden, sind wir leider gezwungen unseren Webserver zu wechseln. Dieser, gibt früher als gedacht, so langsam den Geist auf.
oha....
Der erste Shop verlief problemlos, beim 2./3. kam es dann zu einem kleinen Problem.
was für Probleme? was für ein Server.... was für ein OS? usw.....
Wenn ich Seite aufrufe, dann erscheint im oberen Bereich mehrmals die Warnung:
was für eine Seite?
Deprecated: preg_replace(): The /emodifier is deprecated, use preg_replace_callback()instead in /html/includes/modules/metatags.php on line 182

Nach meiner Recherche ist seit PHP Version 5.5.0 "preg_replace()" veraltet und sollte mit dem Zusatz "_callback" verwendet werden. Dies habe ich gemacht. Anschließend bekam ichfolgende Warnung:

Warning: preg_replace_callback(): Requires argument 2, 'chr('\1')', to be a valid callback in /html/includes/modules/metatags.php on line 182

und unter den 15 Zeilen, mit der gleichen Warnung, ist die normale Shopseite.
was für ein Shopsystem bitte? welche version.... welche PHP version?

Der Code der hinter der Warnung steckt ist folgender:

function metaNoEntities($Text){
if (version_compare(PHP_VERSION, '5.3.4', '<')) {
$translation_table = get_html_translation_table(HTML_ENTITIES,ENT_QUOTES);
} else {
$translation_table = get_html_translation_table(HTML_ENTITIES,ENT_QUOTES,strtoupper($_SESSION['language_charset']));
}
$translation_table = array_flip($translation_table);
$Return= strtr($Text,$translation_table);
return preg_replace_callback( '/&#(\d+);/me',"chr('\\1')",$Return);
}

code

-PHP Version neuer Webserver - 5.6 (latest FPM)
uhhhh..... also ab PHP 7.2x wäre es aktuell.... nochmal, was für ein Server OS , was für ein Shopsystem? ist der Sewrver ordentlich eingerichtet, ist alles aktuell? PHP 5.6 ist eigentlich schon in rente.....

Kann mir einer sagen was ich da noch anpassen muss damit es wieder funktioniert? Ich glaub ich steh auf dem Schlauch.


Viele Grüße
Speedo
Frank
Mitglied: StefanKittel
StefanKittel 10.09.2019 um 12:51:58 Uhr
Goto Top
Moin,

PHP 5.6 ist schon EOL. Das solltet Ihr nicht mehr verwenden. Aktuell wäre 7.2
Siehe https://www.php.net/supported-versions.php

Zu Deiner Frage.
Die Parameter für die beiden Funktionen sind unterschiedlich.
https://www.php.net/manual/de/function.preg-replace.php
https://www.php.net/manual/de/function.preg-replace-callback.php
Mitglied: Bitboy
Bitboy 10.09.2019 um 13:08:01 Uhr
Goto Top
Moin,

wie Stefan schon geschrieben hat, die alte Version erwartet an zweiter Stelle ein typ "mixed" und die neue eine Aufrufbare Funktion.
Bei Stackoverflow findet man folgendes wenn man einfach nach php preg_pregreplace to preg_replace_callback sucht:
https://stackoverflow.com/questions/23498399/replace-preg-replace-to-pre ...

Sieht ziemlich genauso so aus wie der code den du hast.

Grüße
Mitglied: falscher-sperrstatus
falscher-sperrstatus 10.09.2019 um 18:03:29 Uhr
Goto Top
Aktuell ist 7.3, aufkommend 7.4, 7.2 ist noch im "Support", wie 7.1...

Aber ich frage mich, wer auf diese Art und Weise seinen Webserver (für Kunden) betreibt...