URL: https://www.overclockers.at/coding-stuff/array_ausgabe_in_txt_file_202869/page_1 - zur Vollversion wechseln!
Hallo.
Ich versuche verzweifelt ein Array in ein txtfile auszugeben.
mit dem Code
Code: PHP$result = mysql_query('SELECT * from `ISCAT`where SCID= 1'); if (!$result) { die('Ungültige Abfrage: ' . mysql_error()); } while ($row = mysql_fetch_array($result, MYSQL_NUM)) { $preis = str_replace(",",".",$row[5]); $preis2 = round($preis*2,1)/2; $inhalt [] = '"%s","%s","%s","","http://www.onlineshop-ag.ch/shop_s/%s","http://www.onlineshop-ag.ch/shop/bilder/Artikel/%s_1.jpg","%s"<br/>', $row[0], $row[14], $preis2, $row[21], $row[0], $row[15]; } file_put_contents("datei2.txt",implode("\n",$inhalt)); ?>
Wenn du die Textdatei wieder mit PHP verarbeiten willst, dann würde ich lieber serialize() und unserialize() verwenden.
Ansonsten fällt mir auf die Schnelle mal auf, dass das Setzen des Arrays komplett falsch läuft. Das fehlt der Aufruf von sprintf(), also so:
Aber da sollte er dir eigentlich einen Syntaxfehler geben und das Skript wird abgebrochen. Falls das nur ein Copy&Paste-Fehler ist: Eine leere Datei kann auch entstehen, wenn es nicht genügend Rechte für den Web-User gibt, um den Inhalt in die Datei zu schreiben.Code: PHP$inhalt [] = sprintf('"%s","%s","%s",...',$row[0],...);
war ein Denkfehler.
es muss mysql_fetch_assoc und incht mysql_fetch_array sein
Code: PHP$result = mysql_query('SELECT * from `ISCAT`where SCID= 1'); if (!$result) { die('Ungültige Abfrage: ' . mysql_error()); } while ($row = mysql_fetch_assoc($result)) { $preis = str_replace(",",".",$row["PRICE"]); $preis2 = round($preis*2,1)/2; $inhalt[] = '"'.$row['ITEMID'].'","'.$row['idescription'].'","'.$row['ITEMID'].'","http://www.onlineshop-ag.ch/shop_s/'.$row['link'].'","http://www.onlineshop-ag.ch/shop/bilder/Artikel/'.$row['ITEMID'].'_1.jpg","'.$row['IZUSATZ'].'"'; } file_put_contents("datei2.txt",implode("\n",$inhalt)); ?>
Code: PHPheader('Content-Type: text/html; charset=utf-8');
Code: PHP$inhalt = str_replace("ä","ä",$inhalt); $inhalt = str_replace("ü","ü",$inhalt); $inhalt = str_replace("ö","ö",$inhalt); $inhalt = str_replace("ß","ß",$inhalt); $inhalt = str_replace("Ä","Ä",$inhalt); $inhalt = str_replace("Ü","Ü",$inhalt); $inhalt = str_replace("Ö","Ö",$inhalt);
Dein str_replace() ist verkehrt rum, wenn du im Textfile keine Umlaute haben willst. Außerdem kannst du per Array als Parameter1 und 2 das ganze auf einen Aufruf verkürzen.
Wie du so eine Zeile einfügst? Du hast ja oben den Code.. einfach vor dem while() ein $inhalt[] = 'was auch immer einfügen';
Das Textfile wird ja jedesmal neu generiert, oder? Wenn nicht, dann solltest du das so machen.
War dumm geschrieben. In der Datenbank steht der ******* mit & #246; und im Textfile sollen sie eben mir ö,ä,ü etc. stehn.
atm is das ganze noch nicht 100% sauber, aber es reicht für den Anfang.
Das ganze File wird bei jedem Aufruf neu generiert was auch Sinn der Sache ist, da es die benötigten Informationen für die Roboter bestimmter Preisportale bereitstellt.
fertig ( wenn auch noch unsauber )
Code: PHP$titelzeile='"Bestellnummer";"Bezeichnung";"Preis";"Lieferzeit";"ProduktLink";"FotoLink";"Beschreibung";"Gewicht"'; $leerzeile="\n"; ... $result = mysql_query('SELECT * from `ISCAT`where SCID= 1'); if (!$result) { die('Ungültige Abfrage: ' . mysql_error()); } while ($row = mysql_fetch_assoc($result)) { $preis = str_replace(",",".",$row["PRICE"]); $preis2 = round($preis*2,1)/2; $inhalt[] = '"'.$row['ITEMID'].'","'.$row['idescription'].'","'.$preis2.'","http://www.onlineshop-ag.ch/shop_s/'.$row['link'].'","http://www.onlineshop-ag.ch/shop/bilder/Artikel/'.$row['ITEMID'].'_1.jpg","'.$row['IZUSATZ'].'"'; } $inhalt = str_replace("ä","ä",$inhalt); $inhalt = str_replace("ü","ü",$inhalt); $inhalt = str_replace("ö","ö",$inhalt); $inhalt = str_replace("ß","ß",$inhalt); $inhalt = str_replace("Ä","Ä",$inhalt); $inhalt = str_replace("Ü","Ü",$inhalt); $inhalt = str_replace("Ö","Ö",$inhalt); file_put_contents("datei2.txt",$titelzeile); file_put_contents("datei2.txt",$leerzeile,FILE_APPEND); file_put_contents("datei2.txt",implode("\n",$inhalt),FILE_APPEND); ?>
Schöner und viel schneller.Code: PHP$inhalt = str_replace(array("ä","ü",...),array("ä","ü",...),$inhalt);
Code: PHPfile_put_contents("datei2.txt","$titelzeile\n".implode("\n",$inhalt));
Wunderbar
So sieht das doch optisch viel besser aus ^^
big thx Mat
overclockers.at v4.thecommunity
© all rights reserved by overclockers.at 2000-2025