PHP: ereg_replace verursacht fehler nach Umstellung auf UTF-8
Hi ich erhalte seit meiner Umstellung auf UTF-8 bei der Anwendung der folgenden Funktion auf einen aus meiner mysql Datenbank stammenden String einen Fehler:
PHP-Code:
Warning: ereg_replace() [function.ereg-replace]: REG_EPAREN in /WWWROOT/1647/htdocs/inc/header_string.php on line 56 Die Zeile ist die Zeile in welcher ( durch \( ersetzt werden soll, wenn ich diese also die zweite Zeile einfach auskommentere gibt es den Fehler nicht. Wenn der Fehler aber kommt dann kommt am Ende garnichts mehr raus, also die Funktion liefert einen leeren String. Merkwürdig ist nur das die Funktion vorher super Funktioniert hat, es muss also irgentwie mit der UTF-8 Umstellung zu tun haben. |
Die „ereg_replace()“-Funktion erwartet einen regulären Ausdruck, bei denen die Klammern Metazeichen sind, die ebenfalls maskiert werden müssten. Nimm einfach folgende Funktion:
PHP-Code:
|
|
Danke für die Hilfe, das hats gebracht.
Aber nur mal so nebenbei, wieso hat die Funktion vorher funktioniert? Gibt es da Ursachen die mit der Umstellung auf UTF-8 zusammenhängen? Ansonsten, wenn ihr jetzt sagt, es kann vorher auch nicht funktioniert haben, dann kann ich das in gewisser Weise auch akzeptieren, denn scheinbar habe ich in meine Funktionen Datei änderungen vergenommen, aller warscheinlichkeit nach unbeabsichtigte. Denn aus irgenteinem Grund hat in der Offline Version meiner Include Daten das return gefehlt. Und ohne return hätte die Funktion ja sowieso nicht funktioniert. |
Ich weiß nicht, ob es daran liegt, aber einige Funktionen in PHP (zumindest in älteren Versionen) scheinen nicht utf-8-fest. Probier mal substr an einem String, der Sonderzeichen enthält, wenn der String nach einem Sonderzeichen abgeschnitten werden soll...
|
Dafür gibt es auch die Multibyte-Funktionen wie bspw. mb_substr. Die sind dann auch Unicode-sicher.
Mario |
Alle Zeitangaben in WEZ +2. Es ist jetzt 20:36 Uhr. |
Powered by vBulletin® Version 3.8.11 (Deutsch)
Copyright ©2000 - 2024, vBulletin Solutions, Inc.
© Dirk H. 2003 - 2023