X-Git-Url: http://wagnertech.de/git?a=blobdiff_plain;f=lxo-import%2FaddressB.php;h=bd5317f05836800d95a383d110aafe432ba11fe7;hb=879abbad15598aba736c740065bf03bceaacac83;hp=5fec8b1a6df72146756e5779bee0b6b9f52f3a75;hpb=964b978f634c75359b1f55a134a36b66f6dd822c;p=kivitendo-erp.git diff --git a/lxo-import/addressB.php b/lxo-import/addressB.php old mode 100755 new mode 100644 index 5fec8b1a6..bd5317f05 --- a/lxo-import/addressB.php +++ b/lxo-import/addressB.php @@ -1,7 +1,7 @@ -"; exit(1); } - +$dir = "../users/"; clearstatcache (); //print_r($_FILES); $test=$_POST["test"]; if (!empty($_FILES["Datei"]["name"])) { $file=$_POST["ziel"]; - if (!move_uploaded_file($_FILES["Datei"]["tmp_name"],$file.".csv")) { + if (!move_uploaded_file($_FILES["Datei"]["tmp_name"],$dir.$file.".csv")) { $file=false; echo "Upload von ".$_FILES["Datei"]["name"]." fehlerhaft. (".$_FILES["Datei"]["error"].")
"; } -} else if (is_file($_POST["ziel"].".csv")) { +} else if (is_file($dir.$_POST["ziel"].".csv")) { $file=$_POST["ziel"]; } else { $file=false; @@ -67,8 +67,12 @@ if (!empty($_FILES["Datei"]["name"])) { if (!$file) ende ("Kein Datenfile"); $trenner=($_POST["trenner"])?$_POST["trenner"]:","; +if ($trenner=="other") { + $trenner=trim($trennzeichen); + if (substr($trenner,0,1)=="#") if (strlen($trenner)>1) $trenner=chr(substr($trenner,1)); +} -if (!file_exists("$file.csv")) ende("$file.csv nicht im Ordner oder leer"); +if (!file_exists($dir.$file.".csv")) ende("$file.csv nicht im Ordner oder leer"); if (!$db->chkcol($file)) ende("Importspalte kann nicht angelegt werden"); @@ -78,9 +82,41 @@ if (!$employee) ende("Ungültiger User"); $kunde_fld = array_keys($address); -$f=fopen("$file.csv","r"); + //Zeichencodierung des Servers + $tmpcode = $db->getServerCode(); + //Leider sind die Benennungen vom Server anders als von mb_detect_encoding + if ($tmpcode == "UTF8") { + define("ServerCode","UTF-8"); + } else if ($tmpcode == "LATIN9") { + define("ServerCode","ISO-8859-15"); + } else if ($tmpcode == "LATIN1") { + define("ServerCode","ISO-8859-1"); + } else { + define("ServerCode",$tmpcode); + } + //Zeichensatz sollte gleich sein, sonst ist die Datenkonvertierung nutzlos + //DB und LxO müssen ja nicht auf der gleichen Maschiene sein. + if($tmpcode<>$db->getClientCode()) { + $rc = $db->setClientCode($tmpcode); + } + + // Zeichenkodierung File + if ($_POST["encoding"] == "auto") { + define("Auto",true); + define("Translate",true); + } else { + define("Auto",false); + if ($_POST["encoding"] == ServerCode) { + define("Translate",false); + } else { + define("Translate",true); + define("FileCode",$_POST["encoding"]); + } + } + +$f=fopen($dir.$file.".csv","r"); $zeile=fgets($f,1200); -$infld=split($trenner,strtolower($zeile)); +$infld=explode($trenner,strtolower($zeile)); $first=true; $ok=true; foreach ($infld as $fld) { @@ -111,14 +147,14 @@ if ($ok) while (!feof($f)){ $data=trim($data); // seit 2.6 ist die DB-Kodierung UTF-8 @holger Ansonsten einmal vorher die DB-Encoding auslesen // Falls die Daten ISO-kodiert kommen entsprechend wandeln + // done! // UTF-8 MUSS als erstes stehen, da ansonsten die Prüfung bei ISO-8859-1 aufhört ... + // die blöde mb_detect... tut leider nicht immer, daher die Möglichkeit der Auswahl // TODO Umlaute am Anfang wurden bei meinem Test nicht übernommen (Österreich). S.a.: // http://forum.de.selfhtml.org/archiv/2007/1/t143904/ - $encoding = mb_detect_encoding($data,"UTF-8,ISO-8859-1,ISO-8859-15"); - if ($encoding != "UTF-8"){ - $data=mb_convert_encoding($data, "UTF-8","$encoding"); - } + if (Translate) translate($data); + //$data=htmlentities($data); $data=addslashes($data); if ($in_fld[$i]==$file."number") { // customernumber || vendornumber @@ -133,7 +169,7 @@ if ($ok) while (!feof($f)){ $data=strtolower(substr($data,0,1)); if ($data!="f" && $data!="t") $data="f"; } else if ($in_fld[$i]=="ustid"){ - $data=strtr(" ","",$data); + $data=strtr($data," ",""); } /*else if ($in_fld[$i]=="matchcode") { $matchcode=$data; $i++; @@ -201,14 +237,31 @@ echo $j." $file importiert.\n";
- + - + +
Zieltabellecustomer vendor
Trennzeichen
Trennzeichen + Semikolon + Komma + Tabulator + Leerzeichen + + +
Testja
Daten
Verwendete
Zeichecodierung
+ +
- +