Umlaute automatisch ersetzen

Diskutiere das Thema Umlaute automatisch ersetzen im Forum Web-Programmierung

  1. StephanSch

    StephanSch Thread Starter Mitglied

    Beiträge:
    406
    Zustimmungen:
    1
    Mitglied seit:
    24.07.2006
    Ich habe eine index Datei, in der je nachdem welche Variable mitgeschickt wird unterschiedlicher content reingeladen wird. Damit die Umlaute korrekt dargestellt werden, sollen diese automatisch gesucht und entsprechend durch z.B. ü ersetzt werden. Das funktioniert im Grunde genommen auch. Nun möchte ich aber das sämtliche Dateien automatisch replaced werden.

    <?php

    $search = array("ä", "ö", "ü", "Ä", "Ö", "Ü", "ß");
    $replace = array("&auml;", "&ouml;", "&uuml;", "&Auml;", "&Ouml;", "&Uuml;", "&szlig;");
    $subject = switch ($_GET["load"]) {
    case "rechtsanwaelte": include("includes/rechtsanwaelte.php");
    break;
    case "schwerpunkte": include("includes/schwerpunkte.php");
    break;
    case "downloads": include("includes/downloads.php");
    break;
    case "kontakt": include("includes/kontakt.php");
    break;
    case "impressum": include("includes/impressum.php");
    break;
    case "kohler": include("includes/kohler.php");
    break;
    case "fischer": include("includes/fischer.php");
    break;
    case "about": include("includes/about.php");
    break;
    default: include("includes/home.php");
    break;
    };
    $output = str_replace($search, $replace, $subject);

    echo $output;

    ?>

    Dieses Script lädt die entsprechende Datei leider nicht in die subject Variable, kann mir da jdn helfen?
     
  2. StephanSch

    StephanSch Thread Starter Mitglied

    Beiträge:
    406
    Zustimmungen:
    1
    Mitglied seit:
    24.07.2006
    <?php

    $search = array("ä", "ö", "ü", "Ä", "Ö", "Ü", "ß");
    $replace = array("&auml;", "&ouml;", "&uuml;", "&Auml;", "&Ouml;", "&Uuml;", "&szlig;");
    $subject = file_get_contents("includes/impressum.php");
    $output = str_replace($search, $replace, $subject);

    echo $output;

    ?>

    So funktioniert es, ABER wie kann ich nun das Subject dynamisch laden?
     
  3. dms

    dms

    Hi Stephan,

    hier mal ein kleiner Trick. :)

    Am Anfang der Datei startest Du Output Buffering:
    Code:
    <?php
       ob_start();
    ?>
    Und am Ende der Datei liest Du den Buffer in eine Variable ein:
    Code:
    <?php
       $content=ob_get_contents();
       ob_end_clean();
    ?>
    Zwischen diesen beiden Schnipseln ist alles erlaubt. Dass die Ausgabe gebuffert wird, bekommst Du garnicht mit. $content enthält dann den Inhalt der gesammten Seite und wartet darauf gefoltert zu werden. ;)

    Code:
    echo preg_replace(
             array(
                "/&(?![a-z0-9\#]{2,6};)/i",
                "/target=\"_blank\"/",
                "/ä/",
                "/Ä/",
                "/ö/",
                "/Ö/",
                "/ü/",
                "/Ü/",
                "/ß/"
             ),
             array(
                "&amp;",
                "onclick=\"window.open(this.href);return false;\"",
                "&auml;",
                "&Auml;",
                "&ouml;",
                "&Ouml;",
                "&uuml;",
                "&Uuml;",
                "&szlig;"
             ),
             $content);
    Steht so ähnlich in all meinen Projekten und man hat ein paar Sorgen weniger.
     
  4. oneOeight

    oneOeight Mitglied

    Beiträge:
    50.683
    Zustimmungen:
    4.775
    Mitglied seit:
    23.11.2004
    k.a. warum du dir da so kompliziert machst...
    warum setzt du nicht einfach die zeichenkodierung des webservers passend zu den dokumenten, dann musst du nicht ersetzen...

    am besten wäre es, wenn du durchgehend mal auf utf-8 umstellst...
     
  5. StephanSch

    StephanSch Thread Starter Mitglied

    Beiträge:
    406
    Zustimmungen:
    1
    Mitglied seit:
    24.07.2006
    Das hab ich probiert mit UTF-8 aber das funktionierte leider, aus ka welchen Gründen nicht bei mir....

    <?php

    switch ($_GET["load"]) {
    case "rechtsanwaelte": $file = "rechtsanwaelte";
    break;
    case "schwerpunkte": $file = "schwerpunkte";
    break;
    case "downloads": $file = "downloads";
    break;
    case "kontakt": $file = "kontakt";
    break;
    case "impressum": $file = "impressum";
    break;
    case "kohler": $file = "kohler";
    break;
    case "fischer": $file = "fischer";
    break;
    case "about": $file = "about";
    break;
    default: $file = "home";
    break;
    };

    $search = array("ä", "ö", "ü", "Ä", "Ö", "Ü", "ß");
    $replace = array("&auml;", "&ouml;", "&uuml;", "&Auml;", "&Ouml;", "&Uuml;", "&szlig;");
    $subject = file_get_contents("includes/".$file.".php");
    $output = str_replace($search, $replace, $subject);

    echo $output;

    ?>

    so funktioniert das Script...;-) Das Script ist doch so konform oder?
     
Die Seite wird geladen...
  1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies. Akzeptieren Weitere Informationen...