[PHP] PHP/MySQL: Umlaute formatieren

Dieses Thema im Forum "Webentwicklung" wurde erstellt von gummel, 17. Juli 2008 .

  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
     
  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.
     
  3. 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
     
  4. 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
     
  5. 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'
     
  6. 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 ( "/ü/" "&uuml;" $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
     
  7. 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 ^^
     
  8. 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 &amp;encode; suchen und in &encode; ändern
            
    $input  preg_replace ( '~&amp;(#?\w+);~U' '&$1;' $input );
            
            
    //3) fertig
            
    return  $input ;
        }
        
        print 
    encodeText2HTML ( '&&auml;öüß' );  //&amp;&auml;&ouml;&uuml;&szlig;
    ?>
     
  9. Video Script

    Videos zum Themenbereich

    * gefundene Videos auf YouTube, anhand der Überschrift.