[PHP] Umlaute wegbekommen

Dieses Thema im Forum "Webentwicklung" wurde erstellt von newcomer2k6, 6. Juli 2007 .

Schlagworte:
Status des Themas:
Es sind keine weiteren Antworten möglich.
  1. 6. Juli 2007
    Umlaute wegbekommen

    Hallo,

    ich schreibe gerade ein script, wo dateien auf einen Webserver gespeichert werden.Nun soll das Script ÄÖÜ's in Ae und so verwandeln. Ich habe es schon mit folgender function gemacht:

    PHP:
         function  cp1250_to_utf2 ( $text ){
            
    $dict   = array( chr ( 225 ) =>  'á' chr ( 228 ) =>   'ä' chr ( 232 ) =>  'č' chr ( 239 ) =>  'ď' ,
                
    chr ( 233 ) =>  'é' chr ( 236 ) =>  'ě' chr ( 237 ) =>  'í' chr ( 229 ) =>  'ĺ' chr ( 229 ) =>  'ľ' ,
                
    chr ( 242 ) =>  'ň' chr ( 244 ) =>  'ô' chr ( 243 ) =>  'ó' chr ( 154 ) =>  'š' chr ( 248 ) =>  'ř' ,
                
    chr ( 250 ) =>  'ú' chr ( 249 ) =>  'ů' chr ( 157 ) =>  'ť' chr ( 253 ) =>  'ý' chr ( 158 ) =>  'ž' ,
                
    chr ( 193 ) =>  'Á' chr ( 196 ) =>  'Ä' chr ( 200 ) =>  'Č' chr ( 207 ) =>  'Ď' chr ( 201 ) =>  'É' ,
                
    chr ( 204 ) =>  'Ě' chr ( 205 ) =>  'Í' chr ( 197 ) =>  'Ĺ' ,     chr ( 188 ) =>  'Ľ' chr ( 210 ) =>  'Ň' ,
                
    chr ( 212 ) =>  'Ô' chr ( 211 ) =>  'Ó' chr ( 138 ) =>  'Š' chr ( 216 ) =>  'Ř' chr ( 218 ) =>  'Ú' ,
                
    chr ( 217 ) =>  'Ů' chr ( 141 ) =>  'Ť' chr ( 221 ) =>  'Ý' chr ( 142 ) =>  'Ž' ,
                
    chr ( 150 ) =>  '-' );
            return 
    strtr ( $text $dict );
            }
    PHP:
    $be_pfad             =     $ar [ 'dirname' ]. "/" . p1250_to_utf2 ( $dateiname );
    das geht nicht. Hier mal eine andere:

    PHP:
                    $uploadumlaute         =    array( "ö" , "ä" , "ü" , "Ö" , "Ä" , "Ü" , "ß" , " " );
                    
    $uploadumlautenormal     =    array( "oe" , "ae" , "ue" , "Oe" , "Ae" , "Ue" , "ss" , "_" );
                    
    $dateiname              =     str_replace $uploadumlautenormal , $uploadumlaute $dateiname  );
    habt Ihr da eine gute Funktion?
     
  2. 6. Juli 2007
    AW: Umlaute wegbekommen

    PHP:
    <? php
        
    function  str_replace_umlaute ( $string $method $e2l  false )
        {
            if(
    $method  ==  "TEXT" ) {
                
    $charset  = array( "ä"  =>  "ae" "ü"  =>  "ue" "ö"  =>  "oe" );
                foreach(
    $charset  AS  $uml  =>  $rep ) {
                    
    $string  str_replace ( $uml $rep $string );
                    
    $string  str_replace ( strtoupper ( $uml ),  strtoupper ( $rep { 0 }). $rep { 1 },  $string );
                }
                if(
    $e2l  ===  true $string  str_replace ( " " "_" $string );
                return 
    str_replace ( "ß" "ss" $string );
            }
            else { 
    //$method == "HTML"
                
    $charset  = array( "ä"  =>  "&auml;" "ü"  =>  "&uuml;" "ö"  =>  "&ouml;" );
                foreach(
    $charset  AS  $uml  =>  $rep ) {
                    
    $string  str_replace ( $uml $rep $string );
                    
    $string  str_replace ( strtoupper ( $uml ),  $rep { 0 }. strtoupper ( $rep { 1 }). $rep { 2 }. $rep { 3 }. $rep { 4 }. $rep { 5 },  $string );
                }
                if(
    $e2l  ===  true $string  str_replace ( " " "_" $string );
                return 
    str_replace ( "ß" "&szlig;" $string );
            }
        }
        
        
    $dateiname  "hätte gerne ÄäÖöÜü und ß erstetzt!" ;
        
        echo 
    "Zu HTML:<br/>\n" ;
        echo 
    str_replace_umlaute ( $dateiname "HTML" );  //ä => &auml; usw 
        
    echo  "<br/>\nZu TEXT<br/>\n" ;
        echo 
    str_replace_umlaute ( $dateiname "TEXT" );  //ä => ae usw
        
    echo  "<br>\nIn TEXT oder HTML Leerzeichen mit _ erstetzen<br/>\n" ;
        echo 
    str_replace_umlaute ( $dateiname "HTML" true );  // ob TEXT oder HTML is egal
    ?>
    result
    Code:
    Zu HTML:<br/>
    h&auml;tte gerne &Auml;&auml;&Ouml;&ouml;&Uuml;&uuml; und &szlig; erstetzt!<br/>
    Zu TEXT<br/>
    haette gerne AeaeOeoeUeue und ss erstetzt!<br>
    In TEXT oder HTML Leerzeichen mit _ erstetzen<br/>
    h&auml;tte_gerne_&Auml;&auml;&Ouml;&ouml;&Uuml;&uuml;_und_&szlig;_erstetzt!
     
  3. 6. Juli 2007
    AW: Umlaute wegbekommen

    danke. BW ist raus. funktioniert wunderbar
     
  4. Video Script

    Videos zum Themenbereich

    * gefundene Videos auf YouTube, anhand der Überschrift.