preg_replace() the /e modifier is deprecated
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
bekommen
code
dank
ersatz
funktion
funktionieren
gemacht code
geschrieben code
helfen
hinweis
jemand
lage
nachricht
nutzen
problem
text
treffer
umstellung
url
zeile
-
Ich habe mal wieder ein Problem, dass mit der Umstellung auf eine aktuellere PHP-Version aufgetaucht ist. Ich erhalte zu der Code-Zeile (nicht von ir selbst geschrieben)
$_GET['text'] = preg_replace("#(0x[0-9A-F]{2})#e", "chr(hexdec('\\1'))", $_GET['text']);
die Nachricht (notice):
PHP Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead
Ich verstehe schon gar nicht, wo hier der /e modifier ist, sehe nur #e. Erst recht bin ich nicht in der Lage, den Code anzupassen (obwohl ich mir schon diverse Beispiele, die ich mit Google zu ähnlichen Problemen gefunden habe, angesehen habe).
Möglicherweise kann mir mal jemand auf die Sprünge helfen. Wäre dafür sehr dankbar.
-
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
Ich habe das jetzt so gemacht
$_GET['text'] = preg_replace_callback("#(0x[0-9A-F]{2})#", function ($treffer) { return "chr(hexdec('\\1'))"; }, $_GET['text']);
Die Nachricht ist weg und es scheint auch sonst zu funktionieren.
Danke noch für den Hinweis zu #
Beitrag zuletzt geändert: 16.8.2017 10:03:11 von mein-wunschname -
mein-wunschname schrieb:
Ich habe das jetzt so gemacht
$_GET['text'] = preg_replace_callback("#(0x[0-9A-F]{2})#", function ($treffer) { return "chr(hexdec('\\1'))"; }, $_GET['text']);
Die Nachricht ist weg und es scheint auch sonst zu funktionieren.
Da wirst du noch ein Problem bekommen. Die Rückgabe von der Funktion ist "chr(hexdec('\\1'))" als Text. Deine Treffer werden also mit diesem Text ersetzt, nicht mit den Funktionsrückgaben.
return chr(hexdec($treffer[1]));
sollte sein was du brauchst. -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage