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:
Das darf wohl nicht sein. Statt & sollte da wohl & 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:
Wer kann mir sagen, was ich machen muss, damit die & als & 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
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>
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 & 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
Kommentar