Umlaute XML --> PHP --> HTML

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Umlaute XML --> PHP --> HTML

    Hallo ...

    Ich habe ein kleines Problem mit Umlauten !!!

    Ich lese den Wert "Geisterbeschwörer" aus einem XML File aus (http://www.camelot-europe.com/herald...guilds/433.xml) und möchte den dann wieder über ein PHP Script ausgeben (http://www.namaar.de/glw/frameset/members.php) !!!

    Leider gibt er mir da allerdings nicht den Wert "Geisterbeschwörer" sondern "Geisterbeschwörer" aus ...

    Kann das daran liegen, daß er die Umsetzung von "ö" nach "ö" nicht macht ?

    Mein Script zur ansicht :

    <?php

    $insideitem = false;
    $tag = "";
    $race = "";
    $class = "";
    $level = "";
    $guildrank = "";
    $totalrp = "";
    $lastweekrp = "";
    $totalkills = "";
    $totaldeaths = "";
    $anon = "";

    function startElement($parser, $name, $atts) {
    global $insideitem, $tag;
    if ($insideitem) {
    $tag = $name;
    } elseif ($name == "CHARACTER") {
    $insideitem = true;
    }

    switch (strtolower($name)) {
    case "guild":
    printf("<h1> %s / %s </h1>\n \n",$atts["NAME"], $atts["REALM"]);
    break;
    case "character";
    printf("<tr align='center'>\n");
    printf("\n\n<td>%s</td>\n",$atts["NAME"]);
    break;
    default:
    $html .= "";
    break;
    }


    }

    function cdata($parser, $text) {
    global $insideitem, $tag, $race, $class, $level, $guildrank, $totalrp, $lastweekrp, $totalkills, $totaldeaths, $anon;
    if ($insideitem) {
    switch ($tag) {
    case "RACE":
    $race .= $text;
    break;
    case "CLASS":
    $class .= $text;
    break;
    case "LEVEL":
    $level .= $text;
    break;
    case "GUILDRANK":
    $guildrank .= $text;
    break;
    case "TOTALRP":
    $totalrp .= $text;
    break;
    case "LASTWEEKRP":
    $lastweekrp .= $text;
    break;
    case "TOTALKILLS":
    $totalkills .= $text;
    break;
    case "TOTALDEATHS":
    $totaldeaths .= $text;
    break;
    case "ANON":
    $anon .= $text;
    break;
    }
    }
    }


    function endElement($parser, $name) {
    global $insideitem, $tag, $race, $class, $level, $guildrank, $totalrp, $lastweekrp, $totalkills, $totaldeaths, $anon;
    if ($name == "CHARACTER") {
    printf("<td>%s</td>\n", $race);


    // hier ist der versuch, die werte in html konventionen umzusetzten !!!
    // --------------------------------------------------------------------

    switch ($class){
    case "Geisterbeschwörer":
    $class .= "Geisterbeschw&ouml;rer";
    break;
    }

    // --------------------------------------------------------------------

    printf("<td>%s</td>\n", $class);
    printf("<td>%s</td>\n", $level);

    if ($guildrank == 0):
    $guildrank = "Gildenmeister";
    endif;
    if ($guildrank == 1):
    $guildrank = "Ratsvorsitzender";
    endif;
    if ($guildrank == 2):
    $guildrank = "Ratsmitglied";
    endif;
    if ($guildrank == 3):
    $guildrank = "Meistergildenritter";
    endif;
    if ($guildrank == 4):
    $guildrank = "Gildenritter";
    endif;
    if ($guildrank == 5):
    $guildrank = "Meisterknappe";
    endif;
    if ($guildrank == 6):
    $guildrank = "Knappe";
    endif;
    if ($guildrank == 7):
    $guildrank = "Krieger";
    endif;
    if ($guildrank == 8):
    $guildrank = "Gildenmitglied";
    endif;
    if ($guildrank == 9):
    $guildrank = "Gildenanwärter";
    endif;

    printf("<td>%s</td>\n", $guildrank);
    printf("<td>%s</td>\n", $totalrp);
    // printf("<td>%s</td>\n", $lastweekrp);
    // printf("<td>%s</td>\n", $totalkills);
    // printf("<td>%s</td>\n", $totaldeaths);
    // printf("<td>%s</td>\n", $anon);
    printf("</tr>\n");

    $race = "";
    $class = "";
    $level = "";
    $guildrank = "";
    $totalrp = "";
    $lastweekrp = "";
    $totalkills = "";
    $totaldeaths = "";
    $anon = "";

    $insideitem = false;
    }
    }


    printf("<html>\n");
    printf("<body bgcolor='#000000'background='./images/hintergrund.jpg'>\n");
    printf("<table border='1' width='100%s'>\n", "%");
    printf("<tr align='center'>\n");
    printf("<th>Name</th>\n");
    printf("<th>Rasse</th>\n");
    printf("<th>Klasse</th>\n");
    printf("<th>Level</th>\n");
    printf("<th>Rang</th>\n");
    printf("<th>Reichspunkte</th>\n");
    printf("</tr>\n");

    // Die XML-Datei wird in die Variable $xmlFile eingelesen
    $xmlFile = implode("", file("http://www.camelot-europe.com/herald/servers/Avalon/guilds/433.xml"));

    // Der Parser wird erstellt
    $parser = xml_parser_create();
    // Setzen der Handler
    xml_set_element_handler($parser,"startElement","endElement");
    // Setzen des CDATA-Handlers
    xml_set_character_data_handler($parser, "cdata");
    // Parsen
    xml_parse($parser, $xmlFile);
    // Gibt alle verbrauchten Ressourcen wieder frei.
    xml_parser_free($parser);

    // Ausgabe der globalen Variable $html.
    print $html;

    printf("</table>");


    ?>

    Schonmal danke & gruss,

    svenwie

  • #2
    Hat sich das Problem bereits erledigt ?
    Als ich mir gerade Deine Seite angesehen habe, wurde "ö" korrekt angezeigt !

    taratus

    Kommentar


    • #3
      oder mit htmlspecialchars die Sonderzeichen umwandeln

      php-Entwicklung | ebiz-consult.de
      PHP-Webhosting für PHP Entwickler | ebiz-webhosting.de
      die PHP Marktplatz-Software | ebiz-trader.de

      Kommentar

      Lädt...
      X