Ankündigung

Einklappen
Keine Ankündigung bisher.

XML Export - Zeichen teilweise falsch und kauf. UND

Einklappen

Neue Werbung 2019

Einklappen
Dieses Thema ist geschlossen.
X
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • XML Export - Zeichen teilweise falsch und kauf. UND

    Hallo Leute,
    ich habe vor einiger Zeit mithilfe einer Anleitung eine XML Export Funktion für Kundendaten meiner MySQL Datenbank geschrieben.

    Nun bin ich auf 2 Fehler gestoßen:

    1. Wenn ein Kunde ein kaufm. UND (&) eingibt , z.B. Meier & Müller, dann funktioniert mein Import in einer anderen Datenbank nicht.

    In der XML Datei steht dann:

    Code:
    <customers_company>Meier & Müller </customers_company>
    Das darf wohl nicht sein. Statt & sollte da wohl &amp; stehen, oder?


    2. Auf meinen Servern (Strato und eine MAMP Installation auf meinem Mac) werden Umlaute in die XML Datei geschrieben.

    Bei einem Bekannten werden die Umlaute falsch "codiert", also "‰" statt "ä" usw.

    Möglichweise hängen beide Probleme zusammen.

    Hier mein Code:

    PHP-Code:
    function Import2Xml($last_id,$table,$steuerfeld){
        include("connect.php");
        $conn = mysql_connect($dbhostname,$dbusername,$dbpw) or die("Unable to connect to SQL server");
        mysql_select_db($dbname) or die("Unable to select database");

        $query = "SELECT * FROM $table WHERE $steuerfeld>$last_id ORDER BY $steuerfeld ASC";
        $result = mysql_query($query, $conn) or die(mysql_error());
        $recordcount = mysql_num_rows($result);
        if($recordcount == 0){
          //echo "Keine neue Bestellung";
            return 0;
        }

            $dir = "./orders/";

        $xml_file = $dir.$table.".xml";
            
        $xml = fopen($xml_file,"w");

        $s .= "<?xml version=\"1.0\" encoding=\"iso-8859-1\" ?>\n";


        $s .= "<$table>\n";


        while($row = mysql_fetch_row ($result)){
        $s .= "<row>\n";
                for($y=0;$y<@mysql_num_fields($result);$y++){
                   $col=@mysql_fetch_field($result,$y);
                         $s .= "<".$col->name.">".$row[$y]."</".$col->name.">\n";
                }

            $s .= "</row>\n";
        }
        $s .= "</$table>\n";
        fwrite($xml,$s,strlen($s));
        fclose($xml);
            return $recordcount;

    Wer kann mir sagen, was ich machen muss, damit die & als &amp; in die XML Datei geschrieben werden?

    Mit den "‰" statt "ä" frage ich mich, warum ich auf meinen Installationen (das eine ist wie gesagt mein Mac mit MAMP drauf und das andere ein Linux Server bei Strato) immer "ä" bekomme und mein Bekannter auf seinem Server "‰"

    Gruß Eviandem

  • #2
    Hallo, kodier doch die Zeichen als Entites:
    PHP: htmlentities - Manual
    oder benutz CDATA:
    CDATA - Wikipedia, the free encyclopedia

    Wenn Sonderzeichen falsch dargestellt werden ist der Zeichensatz nicht konsequent eingehalten worden. Das musst du eben nachpruefen, von der Quelle bis zum Ziel.
    "[URL="http://www.youtube.com/watch?v=yMAa_t9k2VA&feature=youtu.be&t=25s"]Mein Name ist Lohse, ich kaufe hier ein.[/URL]"

    Kommentar


    • #3
      Hallo Chriz,
      danke für den Hinweis. Habe bei der Gelegenheit "htmlspecialchars" entdeckt, welches meinem gewünschten Ergebnis näher kommt.


      Gruß
      Eviandem

      Kommentar


      • #4
        OK, lass uns hier weiter drueber diskutieren:
        http://www.php.de/php-einsteiger/143...ml-export.html
        "[URL="http://www.youtube.com/watch?v=yMAa_t9k2VA&feature=youtu.be&t=25s"]Mein Name ist Lohse, ich kaufe hier ein.[/URL]"

        Kommentar

        Lädt...
        X