[preg_replace], wie geht das?
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
antworten
anzeigen
array
bad
bit
buchstabe
code
dank
empfehlen
erstes argument
falle
http
problem
suche
test
url
-
Abend,
ich hab schon die Lima-Suche probiert, aber es funktioniert nicht, also poste ich hier.
Wie funktioniert das? Ich habs mit:
aber es funktioniert nicht )=$bad = array("ä", "ö", "ü"); $good = array("ä", "ö", "ü"); $title = preg_replace($bad, $good, $title);
-
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
Hast wahrscheinlich ein Problem mit dem Charset
Als mögliche Lösung http://www.codingcenter.de/beitrag/anzeigen/25-pregreplace-und-utf8-Umlaut-Probleml%C3%B6sung-.html -
preg_replace erwartet als erstes Argument entweder ein PCRE oder ein Array von PCREs. "ä" ist kein PCRE, es müsste "/ä/" heißen. In deinem Fall sollte es reichen das preg_replace durch str_replace zu ersetzten - das ist schneller und einfacher.
-
Soll heißen entweder:
<?PHP $bad = array("ä" , "ö", "ü", "Ä", "Ö", "Ü", "ß"); $good = array("ä" , "ö", "ü", "Ä", "Ö", "Ü", "ß"); $title = str_replace($bad, $good, $title); ?>
Oder:
<?PHP $bad = array("/ä/", "/ö/", "/ü/", "/Ä/", "/Ö/", "/Ü/", "/ß/"); $good = array("ä" , "ö", "ü", "Ä", "Ö", "Ü", "ß"); $title = preg_replace($bad , $good , $title); ?>
Im Falle von preg würde ich jedoch den Modifier /u empfehlen.
Beitrag zuletzt geändert: 17.6.2010 11:21:30 von fabo -
Jo danke für die Antoworten.
Hatte Schulstress (hab noch immer Test & Prüfungen -.-) und keine Zeit zum Antworten gefunden.
Also: Es war wirklich ein Charsetfehler. Im UTF-8 ist für jeden Buchstaben mehr als nur 1 Bit vorgesehen. Bei str_replace kann aber maximal 1 Bit pro Buchstabe verwertet werden. Also:
Entweder ISO-8859-1 als Charset oder
es mit UTF-8 und preg_repace mit nem /ä/ Slash, wie fabo sehr nett erklärt hat (=
Danke euch -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage