Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

CSV Dateien auslesen geht bei Datei 1 und bei Datei 2 nicht.....

Frage Entwicklung PHP

Mitglied: hartmann

hartmann (Level 1) - Jetzt verbinden

15.10.2009, aktualisiert 19.10.2009, 5104 Aufrufe, 7 Kommentare

Hallo,
ich habe mehrere CSV Dateien die ich täglich mit PHP einlesen und nach bestimmten Werten suchen muss.
Bisher hat alles Wunderbar funktioniert aber seit ca 2-3 Tagen werden 2 von 8 Dateien nicht mehr richtig eingelesen. Ich poste am besten erstmal mal den Code:

01.
$dateien[0] = "datei01.csv";   
02.
$dateien[1] = "datei02.csv";   
03.
$dateien[2] = "datei03.csv";   
04.
$dateien[3] = "datei04.csv";   
05.
$dateien[4] = "datei05.csv";   
06.
$dateien[5] = "datei06.csv";   
07.
$dateien[6] = "datei07.csv";   
08.
$dateien[7] = "datei08.csv";   
09.
$counter = 0; 
10.
 
11.
$fp = @fopen($dateien[$counter], "r") or die ("Kann Datei nicht lesen.");  
12.
 
13.
while($array = fgetcsv($fp, 1000, ",")) 
14.
{  
15.
 
16.
     // Hier werden die geschten Daten mit mehreren IF- Abfragen rausgesucht 
17.
     // Bei Datei 02 und 03 bekomme ich nur ein leeres Array zurück   
18.
 
19.
     $counter++; 
20.
}

Bei Datei 02 und 03 bekomme ich nur ein leeres Array zurück. Die Dateien sind Komma getrennt und vom Aufbau zu 100% identisch. Das hat bisher immer Perfekt funktioniert nur seit ein paar Tagen werden diese 2 Dateien nicht mehr richtig gelesen.
Wenn ich die CSV Dateien in einen Editor öffne liegen diese auch im richtigen Format mit Inhalt vor, nur PHP kommt nicht an den Inhalt ran.

Ich hoffe jemand kann mir hier weiterhelfen, ich bin nämlich im moment ziemlich Ratlos .... falls mehrere Informationen benötigt werden kann ich diese jederzeit noch Posten.
Mitglied: Tommy70
15.10.2009 um 07:43 Uhr
Hallo,

um mal mit Garantie sicherzustellen dass die Dateien identisch sind.
Lässt sich Datei02 einlesen wenn du sie in Datei01 umbenennst und Datei01 in Datei02?

Gruß
Tom
Bitte warten ..
Mitglied: maretz
15.10.2009 um 07:51 Uhr
Moin,

gibt es denn auch ne Fehlermeldung (ggf. auch in den Log-Files?). Hat die Datei die entsprechenden Rechte? Wie sieht es mit Zeilen-Ende-Kennungen aus? (z.B. eine Datei im Unix, die andere im DOS-Format?)
Bitte warten ..
Mitglied: nxclass
15.10.2009 um 08:15 Uhr
evtl. ist eine Datenzeile länger als 1000 Zeichen ?
oder in einem Wert steht ein Komma, welches den Parser durcheinander bringt ?
Bitte warten ..
Mitglied: hartmann
15.10.2009 um 08:38 Uhr
erstmal danke für die schnelle Antworten.
Fehlermeldungen sind keine erschienen und Rechte der Dateien sind 100% identisch.

Habe die Dateien 01 und 02 jetzt umbenannt und alles ist perfekt gelaufen.

Dann habe ich diese Dateien wieder umbenannt und nochmal ausprobiert und es funktioniert jetzt auch wieder einwandfrei.

Das Problem hat sich jetzt also erstmal gelöst, aber woran könnte das liegen das es nach dem umbenennen jetzt wieder normal funktioniert ? Habe die Dateien 2 mal umbenannt jetzt ist alles wieder wie zu Beginn aber es geht jetzt perfekt.

Habt ihr da vielleicht noch eine Idee?
Bitte warten ..
Mitglied: bbyszio
15.10.2009 um 09:09 Uhr
Moin,
also wenn ich dein Script richtig verstehe, öffnest du nur die erste Datei, da dein fopen ausserhalb der Schleife liegt. Ich würde das fopen in der Schleife machen und direkt vor dem $counter++ die Datei wieder schließen.


Gruß
Bodo
Bitte warten ..
Mitglied: nxclass
15.10.2009 um 09:37 Uhr
Kann es sein das evtl. ein anderer Prozess gerade auf die Datei zugegriffen und diese blockiert hat ? (AV o. ein Editor ?
Wie werden die CSV Dateien erstellt ? - evtl. waren die 2 Dateien noch nicht geschlossen und somit leer ?

PS: Durch reiben, ist meine Glaskugel schon ganz heiß - muss sie jetzt erst mal abkühlen lassen)
Bitte warten ..
Mitglied: hartmann
15.10.2009 um 10:25 Uhr
Hatte das fopen schon in einer Schleife das ist mir durch das kopieren wohl verloren gegangen, so sieht das script aus.

01.
$dateien[0] = "datei01.csv";   
02.
$dateien[1] = "datei02.csv";   
03.
$dateien[2] = "datei03.csv";   
04.
$dateien[3] = "datei04.csv";   
05.
$dateien[4] = "datei05.csv";   
06.
$dateien[5] = "datei06.csv";   
07.
$dateien[6] = "datei07.csv";   
08.
$dateien[7] = "datei08.csv";   
09.
$counter = 0; 
10.
 
11.
while($counter < count($dateien)) 
12.
13.
$fp = @fopen($dateien[$counter], "r") or die ("Kann Datei nicht lesen.");  
14.
 
15.
while($array = fgetcsv($fp, 1000, ",")) 
16.
{  
17.
 
18.
     // Abfragen 
19.
 
20.
21.
    $counter++; 
22.
}

@nxclass Der Tipp das die Dateien evtl noch nicht fertig erstellt bzw. noch in Verwendung waren könnte ich mir gut vorstellen da die CSV dateien von Excel mit einen VB Script erstellt werden und diese Excel Datei häufig von von verschiedenen Usern bearbeitet wird. Ich werde das mal beobachten.

Thx an alle nochmal für die schnelle Hilfe.
Bitte warten ..
Ähnliche Inhalte
Batch & Shell
gelöst Auslesen und Vergleichen Zweiter CSV Dateien Powershell (7)

Frage von Hainoon zum Thema Batch & Shell ...

Batch & Shell
gelöst 2 Csv -Dateien zum Teil zusammenfügen (6)

Frage von Piotrney zum Thema Batch & Shell ...

VB for Applications
gelöst Bestimmte Spalten aus CSV-Datei auslesen (VBS) (9)

Frage von Gurkenhobel zum Thema VB for Applications ...

Batch & Shell
gelöst Dateien aus CSV mit Batch suchen (5)

Frage von joes1609 zum Thema Batch & Shell ...

Neue Wissensbeiträge
Ubuntu

Ubuntu 17.10 steht zum Download bereit

(3)

Information von Frank zum Thema Ubuntu ...

Datenschutz

Autofahrer-Pranger - Bewertungsportal illegal

(8)

Information von BassFishFox zum Thema Datenschutz ...

Windows 10

Neues Win10 Funktionsupdate verbuggt RemoteApp

(8)

Information von thomasreischer zum Thema Windows 10 ...

Microsoft

Die neuen RSAT-Tools für Win10 1709 sind da

(2)

Information von DerWoWusste zum Thema Microsoft ...

Heiß diskutierte Inhalte
Routers & Routing
Allnet - VDSL2 Modem - SFP (mini-GBIC) (20)

Frage von Dobby zum Thema Routers & Routing ...

Monitoring
Netzwerk-Monitoring Software (17)

Frage von Ghost108 zum Thema Monitoring ...

Voice over IP
DeutschlandLAN IP Voice Data M Premium, Erfahrung mit Faxgeräte? (17)

Frage von liquidbase zum Thema Voice over IP ...

Windows 10
Windows 10 Ordnerfreigabe (15)

Frage von Xaero1982 zum Thema Windows 10 ...