#1 17. Juli 2008 PHP/MySQL: Umlaute formatieren Hallo, ich muss nun leider das charset meiner Page ändern, da auch russiche Inhalte dargestellt werden sollen. Leider habe ich nun die Umlaute nicht wie z.B. ü geschrieben sondern einfach nur ein ü .... gibt es dazu ein Script was alle Inhalte einer Tabelle oder Datenbank so verändert das sie in HTML geschrieben sind?. PS: Nein ich kann nicht einfach 2 verschiedene charset bzw. Templates nehmen ... das lässt mein cms nicht zu ... Vielen Dank schon einmal für die Hilfe + Multi-Zitat Zitieren
#2 17. Juli 2008 AW: PHP/MySQL: Umlaute formatieren Ist es jetzt in ner php Datei oder in der DB... Falls in der php o.ä. öffne einfach Dreamweaver und dann die Suchfunktion hier kannse so suchen, dass alle "ü"'s durch ein ü ersetzt werden soll. + Multi-Zitat Zitieren
#4 17. Juli 2008 AW: PHP/MySQL: Umlaute formatieren also replace kannst du so machen: Code: UPDATE table SET field = REPLACE('from', 'to', field); wobei ich mir bei der REPLACE methode nicht ganz sicher bin ob die parameterreihenfolge stimmt ist halt aufwendig weil du alle tabellen und text-felder durchgehen musst + Multi-Zitat Zitieren
#5 17. Juli 2008 AW: PHP/MySQL: Umlaute formatieren Hallo gummel, Du könntest Dir verschachtelte Cursor bauen, die Dir die Statements zusammenbauen. Zum Auslesen von Tabellen- und Spaltennamen stehen Dir statements wie Code: SHOW TABLES oder Code: SHOW COLUMNS FROM `TableName` LIKE '%' zur Verfügung. Hoffe das hilft. BG MaxDev + Multi-Zitat Zitieren
#6 17. Juli 2008 AW: PHP/MySQL: Umlaute formatieren Ich nehme an du willst auf UTF-8 umstellen... vergess dann bitte nicht auch folgenden Befehl direkt nach dem Verbinden zur Datenbank auszuführen (oder einfach direkt die Tabellen zu ändern): SET NAMES 'utf8' + Multi-Zitat Zitieren
#7 17. Juli 2008 AW: PHP/MySQL: Umlaute formatieren Hab mir selbst den Anfang zusammengebastelt PHP: <? php include( 'db_connect.php' ); error_reporting ( E_ALL | E_NOTICE ); function parseoldcharsetCode2HTML ( $bb ) { $bb = preg_replace ( "/ü/" , "ü" , $bb ); return $bb ; } $abfrage = "SELECT * FROM content WHERE contentID='5171'" ; $ergebnis = mysql_query ( $abfrage ) OR die( "Error: $abfrage <br>" . mysql_error ()); while( $row = mysql_fetch_object ( $ergebnis )) { $text = $row -> content ; $formatiert = parseoldcharsetCode2HTML ( $text ); echo "Alter Text: $text <br /><br />Neuer Text: $formatiert " ; } ?> Klappt soweit sehr gut. Danke an euch alle ... BW's bekommt jeder + Multi-Zitat Zitieren
#8 17. Juli 2008 AW: PHP/MySQL: Umlaute formatieren ok, es hatte geklappt ... jetzt iwie net mehr?!^^ jemand ne idee wo der fehler im oberen script ist!? oder hat jemand ne bessere lösung?^^ edit: es klappt doch ^^ + Multi-Zitat Zitieren
#9 17. Juli 2008 AW: PHP/MySQL: Umlaute formatieren PHP: <? php function encodeText2HTML ( $input ) { //1) encode html if( version_compare ( PHP_VERSION , '5.2.3' , '>=' )) { //seit php5.2.3 gibts den parameter "double_encode" der uns den regex erspart return htmlentities ( $input , ENT_COMPAT , 'ISO-8859-15' , false ); } else{ $input = htmlentities ( $input , ENT_COMPAT , 'ISO-8859-15' ); } //2) nach &encode; suchen und in &encode; ändern $input = preg_replace ( '~&(#?\w+);~U' , '&$1;' , $input ); //3) fertig return $input ; } print encodeText2HTML ( '&äöüß' ); //&äöüß ?> + Multi-Zitat Zitieren