zurück zur Startseite
  


Zurück XHTMLforum > Webentwicklung (außer XHTML und CSS) > Serveradministration und serverseitige Scripte
Seite neu laden PHP: ereg_replace verursacht fehler nach Umstellung auf UTF-8

Antwort
 
LinkBack Themen-Optionen Ansicht
  #1 (permalink)  
Alt 30.06.2007, 15:21
Erfahrener Benutzer
XHTMLforum-Mitglied
Thread-Ersteller
 
Registriert seit: 24.09.2003
Beiträge: 243
braindead befindet sich auf einem aufstrebenden Ast
Standard 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:
function escape_for_js($string) {
    
$string ereg_replace("'","\'",$string);
    
$string ereg_replace("(","\(",$string);
    
$string ereg_replace(")","\)",$string);
    return 
$string;

Der Fehler den ich erhalte ist dieser:
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.
Mit Zitat antworten
Sponsored Links
  #2 (permalink)  
Alt 30.06.2007, 15:38
Benutzerbild von Gumbo
XHTMLforum-Kenner
 
Registriert seit: 22.08.2004
Ort: Trier
Beiträge: 2.740
Gumbo ist jedem bekanntGumbo ist jedem bekanntGumbo ist jedem bekanntGumbo ist jedem bekanntGumbo ist jedem bekanntGumbo ist jedem bekannt
Standard

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:
function escape_for_js$str )
{
    return 
addcslashes($str"'()");

__________________
Markus Wulftange
Mit Zitat antworten
Sponsored Links
  #3 (permalink)  
Alt 30.06.2007, 16:08
Benutzerbild von netspy
Erfahrener Benutzer
XHTMLforum-Kenner
 
Registriert seit: 13.08.2004
Ort: Leipzig
Beiträge: 1.956
netspy sorgt für eine eindrucksvolle Atmosphärenetspy sorgt für eine eindrucksvolle Atmosphäre
Standard

  1. Nutze Gumbos Funktion.
  2. Wenn nicht, nutze str_replace, da du ja sowieso keinen regulären Ausdruck brauchst.
  3. Wenn du doch mit RegEx arbeiten willst/musst, nutze preg_replace.
Mario
__________________
AppDev Blog · AppDev Forum
Mit Zitat antworten
  #4 (permalink)  
Alt 30.06.2007, 16:19
Erfahrener Benutzer
XHTMLforum-Mitglied
Thread-Ersteller
 
Registriert seit: 24.09.2003
Beiträge: 243
braindead befindet sich auf einem aufstrebenden Ast
Standard

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.
Mit Zitat antworten
  #5 (permalink)  
Alt 02.07.2007, 10:21
Erfahrener Benutzer
XHTMLforum-Kenner
 
Registriert seit: 29.07.2005
Beiträge: 1.078
xm22 befindet sich auf einem aufstrebenden Ast
Standard

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...
__________________
... Meine Meinung
Mit Zitat antworten
  #6 (permalink)  
Alt 02.07.2007, 10:28
Benutzerbild von netspy
Erfahrener Benutzer
XHTMLforum-Kenner
 
Registriert seit: 13.08.2004
Ort: Leipzig
Beiträge: 1.956
netspy sorgt für eine eindrucksvolle Atmosphärenetspy sorgt für eine eindrucksvolle Atmosphäre
Standard

Dafür gibt es auch die Multibyte-Funktionen wie bspw. mb_substr. Die sind dann auch Unicode-sicher.

Mario
__________________
AppDev Blog · AppDev Forum
Mit Zitat antworten
Antwort

Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus


Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
PHP - Fehler moula Serveradministration und serverseitige Scripte 6 16.08.2008 18:43
Dateien auslagern - Include und PHP ArcVieh Serveradministration und serverseitige Scripte 17 27.03.2008 18:09
per PHP Fehler 404 auslösen, nicht nur die Fehlerseite laden? braindead Serveradministration und serverseitige Scripte 17 14.01.2008 15:57
Fehler in php code?? bastien Serveradministration und serverseitige Scripte 9 11.12.2006 22:14


Alle Zeitangaben in WEZ +2. Es ist jetzt 12:46 Uhr.