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

Printed on: April 25, 2024 at 13:04 o'clock

Member: Vision2015
Vision2015 Sep 10, 2019 at 10:42:58 (UTC)
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
Member: StefanKittel
StefanKittel Sep 10, 2019 at 10:51:58 (UTC)
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
Member: Bitboy
Bitboy Sep 10, 2019 at 11:08:01 (UTC)
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
Member: falscher-sperrstatus
falscher-sperrstatus Sep 10, 2019 at 16:03:29 (UTC)
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...