php-resource




Archiv verlassen und diese Seite im Standarddesign anzeigen :
csv bearbeiten


 
RealFairPlayer
06-12-2005, 20:27 
 
Hi!

Ich kotz gleich,

Okay, folgendes, ich habe eine CSV Datei, in dieser sind 3 Spalten welche jeweils durch ein Komma getrennt sind, alles was ich will ist diese in PHP einlesen (klappt bereits) ... dann die Leerzeilen welche in der ersten und letzten Spalte teilweise sind löschen und die Datei abermals speichern. Das ist doch möglich, oder?

Grüße,
Matze

 
Abraxax
06-12-2005, 20:33 
 
aber klar doch.

 
onemorenerd
06-12-2005, 20:45 
 
@Abraxax: Jetzt kotzt er wirklich. :D

Ansätze, Code, Fehlermeldungen, Symptome?

 
Abraxax
06-12-2005, 20:47 
 
Original geschrieben von onemorenerd
@Abraxax: Jetzt kotzt er wirklich. :Dwieso denn das? nur weil ich seine frage korrekt beantwortet habe? :D

 
onemorenerd
06-12-2005, 21:02 
 
Ja, denn die richtige Antwort brachte ihn zur Erkenntnis, dass es die falsche Frage war. Zumindest falsch formuliert, im Kopf hatte sicher die richtige.

Woran liegt es nur, dass die Leute so wischiwaschi formulieren? Er hier hat sein Problem doch erkannt, warum kann er nicht gezielt nach einer Lösung oder lieber nur nach einem Ansatz fragen? Habe das Gefühl, dass das in den letzten Jahren zugenommen hat. Kaum einer sagt noch was er meint, teilweise bekommt man nur Satzfetzen (gern auch in Möchtegern-hacker-ianisch *sic*) und man muß den Kern der Sache aus dem Kontext schließen. :dontknow:

 
Abraxax
06-12-2005, 21:07 
 
tja. so sind die leute. meist script-kiddies. und die können es nicht anders und werden auch immer jünger. :goth:

ich könnte jetzt noch was sagen ... lasse es aber. nur ein stichwort noch dazu ... P.I.S.A. lässt grüßen.

 
ghostgambler
06-12-2005, 21:34 
 
*mal einfach was postet, damit der Link in der Sig sich auch in diesem Thread wiederfindet*
Wie man fragen richtig stellt!

 
RealFairPlayer
07-12-2005, 12:32 
 
Hi!

Okay, gut, nun weiß ich also wie man mit neuen Mitgliedern umgeht. Hatte es mehrfach in anderen Threads gelesen .... aber da fand ich es lustig. Hier weniger. Aber gut, ich entscheide nun mal selbst zwischen neuen Thread mit "korrekter" Fragestellung oder einfach hier nochmal die "Frage" neu zu formulieren.

Neue Formulierung des Problems zur Realisierung einer Bearbeitungsmöglichkeit einer durch ein Array eingelesenden CSV Datei:


Hier die History:

<?php
$Zeilen = 1;
$Dateizeiger = fopen("test.csv", "r");
while(($Daten=fgetcsv($Dateizeiger, 1000, ";"))!==FALSE)
{
$AnzahlDerFelder = count($Daten);
echo"<p><b>",
$AnzahlDerFelder,
" Felder in Zeile ",
$Zeilen,
":</b><br>";
$Zeilen++;
for($i=0; $i<$AnzahlDerFelder; $i++)
{
echo $Daten[$i],
"<br>";
}
echo"</p>";
}
fclose($Dateizeiger);
?>


Eine CSV Datei wird eingelesen und ausgegeben. Sie besteht aus drei Spalten wovon nun aus allen Spalten die Leerzeichen entfernt werden sollen und die Datei abermals auf dem Server abgespeichert werden soll, ob die erneute Speicherung ein überschreiben der alten Datei oder ein Neuanlegen ist ist hierbei unrelevant.

1. Wer kann mir den Befehl nennen mit welchem ich die geöffnete Datei verändern kann?
2. Wer kann mir ein Codebeispiel (Link oder hier gepostet) nennen?


Für eventuelle Rechtschreibfehler bitte ich um Nachsicht.

Grüße aus München,
Matthias

 
onemorenerd
07-12-2005, 13:07 
 
$str = file_get_contents('test.csv');
$str = str_replace(' ', '', $str);
file_put_contents('test.csv', $str);
Falls du eine der file_-Funktionen nicht hast (versionsabhängig), schau im Manual zur Funktion nach 'Nachbauten'.

Falls du komplexere Ersetzungsoperationen brauchst - etwa 'nur die Leerzeichen aus der x. und y. Spalte entfernen', schau dir im Manual die preg_-Frunktionen an.

*Manual heißt http://php.net/manual

 
RealFairPlayer
07-12-2005, 14:38 
 
Hi!

DREI Zeilen Code und meine Probleme sind gelöst, wirklich SUPER! DANKE!

Noch ein Ding, wenn ich am ANFANG jeder Zeile ein Leerzeichen setzen will, wie ist das möglich?

Danke schon im vorraus,
Matze

 
onemorenerd
07-12-2005, 14:55 
 
$str = file_get_contents('test.csv');
$str = str_replace(' ', '', $str); // Leerzeichen entfernen
$str = str_replace("\n", "\n ", $str); // Leerzeichen am Zeilenanfang
file_put_contents('test.csv', $str);
Aber Achtung: Wenn eine Zelle einen Zeilenumbruch enthält (\\n), wird ebenfalls ein Leerzeichen eingefügt. Das kannst du mit preg_replace umgehen, aber bevor du jetzt nachfragst, schaust du bitte selbst nach wie das geht und versuchst es bitte.

 
RealFairPlayer
07-12-2005, 15:47 
 
:)

Okay, dann werd ich das mal machen, by the way, das funktioniert wirklich klasse, danke! Die erste Zeile wird jedoch nicht bearbeitet, woran liegt das? Hier mein derzeitiger Code:


$str = file_get_contents('test.csv');
$str = str_replace(' ', '', $str); // Leerzeichen entfernen
$str = str_replace("\n", "\n ", $str); // Leerzeichen am Zeilenanfang
$str = str_replace(" 0","+49",$str);
file_put_contents('test.csv', $str);?>

 
jahlives
07-12-2005, 15:51 
 
Die erste Zeile wird jedoch nicht bearbeitet, woran liegt das?
Was wird nicht bearbeitet ? Das Leerzeichen entfernen (müsste aber funzen) ? Das erste Leerzeichen (kann bestimmt nicht funzen denn du hast ja kein \\n das ersetzt werden könnte) ?

//für das erste Leerzeichen auf der ersten Zeile
$str = ' '.$str;


Gruss

tobi

 
onemorenerd
07-12-2005, 15:52 
 
Original geschrieben von RealFairPlayer
Die erste Zeile wird jedoch nicht bearbeitet, woran liegt das?Daran, daß du gar nicht kapierst, was da passiert. :mad:

$str = ' '.str_replace("\n", "\n ", $str);

 
RealFairPlayer
07-12-2005, 16:41 
 
Hi!

Danke für deine Antwort Tobi!

Und für die andere Antwort ebenfalls Danke .... vielleicht sollten sich einige hier darüber mal Gedanken machen wie sie mit anderen kommunizieren. Einem Einsteiger hilft es nunmal nicht weiter wenn er liest "weil du gar nicht kapierst was hier passiert" .... diese Community ist eine der größten, wundert es da das auch "Neulinge" dabei sind, die eben "noch" nicht so qualifiziertes HIntergrundwissen mitbringen, muss man sie deshalb gleich angehen? In einem Insiderboard für PHP Cracks okay, da müssen sich Neulinge erst beweisen, aber bei einem großen Board hoffte ich persönlich auf mehr Kulanz,

Naja, werden schon nicht alle so ruppig sein hier ... und geholfen wurde mir ja trotzdem nur musste ich dafür ganz schön einstecken finde ich ...

Grüße,
Matthias

 
thommyk
07-12-2005, 16:50 
 
Einem Einsteiger hilft es nunmal nicht weiter wenn er liest "weil du gar nicht kapierst was hier passiert"

Dann will ich mal so freundlich sein.

Du ersetzt alle Umbrüche (\n) durch einen Umbruch plus ein Leerzeichen DANACH.

Also kann am Anfang der ersten Zeile auch kein Leerzeichen eingefügt werden, weil ja kein Umbruch DAVOR ist. Noch Fragen?

Du solltest ja nicht den Code stumpf kopieren, sondern ihn auch verstehen um was zu lernen

 
onemorenerd
07-12-2005, 17:30 
 
Original geschrieben von RealFairPlayer
vielleicht sollten sich einige hier darüber mal Gedanken machen wie sie mit anderen kommunizieren.
Ja vor allem die Neulinge! :mad:
Einem Einsteiger hilft es nunmal nicht weiter wenn er liest "weil du gar nicht kapierst was hier passiert"Ist mir klar, aber ich habe in diesem Thread mehrfach "Manual" und "nachsehen" gesagt, irgendwann wirds mir halt zu blöde.
.... diese Community ist eine der größten, wundert es da das auch "Neulinge" dabei sindVielleicht ist sie eine der größten (mir persönlich egal, denn Größe korreliert eh nicht mit Niveau), aber schau mal genauer hin:
Von über 30.000 Members sind nur 130 wirklich aktiv (> 100 Beiträge, letzter vor < 30 Tage) und der Rest kam, fragte, bekam Antwort und ward nie wieder gesehen.

 
BabYlon.ch
16-10-2006, 16:02 
 
Hi,

Noch eine Anmerkung zu diesem Thread und an die zwei Abraxax und onemorenerd:

Ihr zwei wusstet ganz genau, was RealFairPlayer meinte und antwortet mit so schwachsinnigen Posts, wie..

quote:Original geschrieben von onemorenerd
@Abraxax: Jetzt kotzt er wirklich.

wieso denn das? nur weil ich seine frage korrekt beantwortet habe? quote:Original geschrieben von onemorenerd


Danke für so hilfreiche Posts. Ihr macht einem die Suche nach einem Problem wirklich viel hilfreicher. Nee, es stört mich ja nicht, dass ich mehrere Stunden in Google verbringen muss um Probleme genau solcher Art lösen zu können und auf solchen Schwachsinn von euch beiden stossen muss.

Ich benutze immer zuerst die Suchfunktionen der Foren, aber wenn da zuerst solche Off-Topic Posts stehen, schreibe ich wohl in Zukunft lieber gleich ins Forum und stelle meine Frage.

Sorry, musste mal Luft ablassen! Aber nach dem 1'000 Link und dauerndem Post-Farming in den Foren staut sich das halt manchmal an. :)

Gruss,
Christoph


Alle Zeitangaben in WEZ +2. Es ist jetzt 03:39 Uhr.