Navigation
 Startseite
 Fachbücher
 Forum
 Webmaster News
 Script Newsletter
 Kontakt
 Script Installation
 Php
 Php Tutorials
 Impressum

Community-Bereich
 kostenlos Registrieren
 Anmelden
 Benutzerliste

Script Datenbank
 Script Archiv
 Script Top 20
 Screenshots
 Testberichte

Suche
 

Unsere Php Scripts
 Counter Script
 Umfrage Script
 Bilder Upload Script
 Terminverwaltung
 Simple PHP Forum
 RSS Grabber

Script Mods
 phpBB Adsense Mode

Tools und Generatoren
 .htpasswd Generator
 md5 Generator
 base64 Generator
 Markdown to HTML
 Colorpicker
 Unix timestamp Tool
 TLD Liste
 Webkatalog‑Verzeichnis

Partner
 Sprüche Treff

Artfiles.de
Bietet Serviceorientierte Internetdienstleistungen...
https://www.Artfiles.de
Hosterplus.de
Bekommen Sie Speicherplatz (Webspace), Domains und...
https://www.Hosterplus.de
 
 
 

CSV Datei einlesen mit Php und ausgeben

Sie befinden sich: Home > Php Tutorial > CSV Datei einlesen mit Php ...

CSV Datei einlesen mit Php und ausgeben


Eintrag am:  14.12.2009
Hits / Besucher:  37253
Sprache:  Deutsch
Kategorie:  Fortgeschrittene Tut...
Tutorial Art:  eigenes
Eingetragen von   schubertmedia schubertmedia
 
Beschreibung

Dieses Tutorial setzt voraus, dass man vorher sich mit dem Tutorial „MySQL Export zu einer CSV Datei mit PHP“ auseinandergesetzt hat. Es geht hierbei darum, dass man mit PHP eine CSV Datei einliest und diese entsprechend wieder ausgibt. Man könnte zum Beispiel generierte CSV Dateien anhand eines bestimmten Formates auf einer Webseite ausgeben. In diesem Tutorial gehen wir ausschließlich auf das Format der CSV Datei ein, die wir in unserem Vorgänger Tutorial generiert haben. Nachfolgend finden sie den entsprechenden Code.

Code des PHP Scripts:

<?php

/*
* Created on 14.12.2009 by Nico Schubert
*/

/**
* Namen der CSV Datei, die eingelesen werden soll.
Die Datei muss sich im gleichen Verzeichnis
wie das PHP Script befinden.
*/
$csv_datei = "download.csv";
/**
* Der Trenner, der einzelnen Felder.
*/
$feler_trenner = ";";
/**
* Der Trenner, der einzelnen Zeilen.
*/
$zeilen_trenner = "n";
/**
* Im nächsten Abschnitt wird mit der PHP Funktion
file_exists() geprüft, ob es die Datei gibt.
*/
if (@file_exists($csv_datei) == false) {
/**
* Wenn die Datei nicht vorhanden ist, geben
wir mit den Echo Befehl eine
Fehlermeldung aus.
*/
echo 'Die CSV Datei: '. $csv_datei.' gibt es
nicht!';
} else {
/**
* Als nächstes speichern wir in der Variable
$datei_inhalt den Inhalt der Datei.
*/
$datei_inhalt = @file_get_contents($csv_datei);
/**
* Nun speichern wir ein Array in der Variable
$zeilen, dieses Array ermitteln wir mit
der PHP Funktion explode() und den Zeilen
Trenner, den wir in der Variable
$zeilen_trenner hinterlegt haben.
*/
$zeilen = explode($zeilen_trenner,
$datei_inhalt);
/**
* Mit der PHP Funktion count() ermitteln wir
die Anzahl der gefundenen Arrayelemente
in der Variable $zeilen. Die
zurückgegebene Anzahl speichern wir in
der Variable $anzahl_zeilen.
*/
$anzahl_zeilen = count($zeilen);
/**
* Es wird nun mit den Echo Befehl eine Ausgabe
unserer gefundenen Array Elemente
ausgegeben. Da wir am Ende der Datei
einen Zeilenumbruch haben, müssen wir die
Variable $anzahl_zeilen minus eins rechnen.
*/
echo 'Es wurden in der CSV Datei: '.
$csv_datei.' insgesamt
'.($anzahl_zeilen-1).' Zeilen gefunden.<br>';
/**
* Mit der PHP Funktion is_array() prüfen wir,
ob in der Variable $zeilen auch wirklich
ein Array enthalten ist.
*/
if (is_array($zeilen) == true) {
/**
* Nun laufen wir mit der foreach Schleife
unser Array durch.
*/
foreach($zeilen as $zeile) {
/**
* Wir haben nun in der Variable $zeile
unsere Zeileninhalte, die wir
natürlich einzelnen trennen
müssen. dazu verwenden wir wieder
die PHP-Funktion explode() und
speichern in der Variable $felder
unserer einzelnen Felder.
*/
$felder = explode($feler_trenner,
$zeile);
/**
* Da wir bei der Ausgabe, nach jeden
einzelnen Feld ein Komma ausgeben
möchten, benötigen wir eine
Variable die wir hoch zählen.
Wenn unsere Zeile abgearbeitet
wurde, setzen wir die Variable
wieder auf null und fangen von
vorne an.
*/
$i = 0;
if (is_array($felder) == true) {
foreach($felder as $felde) {
/**
* Mit einer IF-Anweisung
prüfen wir, ob auch
wirklich in unserer
Variable $felde ein
Inhalt vorhanden ist.
*/
if ($felde != '') {
/**
* Als nächstes gehen wir
mit den Echo Bfehl
die einzelnen Felder
aus. Vor der Ausgabe
prüfen wir die
Variable $i ob diese
ungleich null ist,
wenn dies der Fall
ist, wird vor unserer
Feldinhalt ein Komma
an gehangen.
Zusätzlich ersetzen
wir vor der Ausgabe
mit der Funktion
str_replace() alle
doppelten
Anführungszeichen.
*/
echo (($i != 0) ? ', ':
''). str_replace('"',
'', $felde);
/**
* Damit unsere Variable $i
hoch gezählt wird,
müssen wir diese mit
++ um eins erhöhen.
*/
$i++;
}
}
}
/**
* Wenn wir jede einzelne Zeile für
sich ausgeben möchten, müssen wir
mit den Echo Befehl an dieser
Stelle einen HTML Umbruch
generieren. Dies machen wir mit
den Echo Befehl.
*/
echo '<br>';
}
}
}
?>

Erklärung:

Dieser Code liest Daten aus einer CSV-Datei ein. Zuerst wird geprüft, ob die angegebene CSV-Datei überhaupt existiert. Wenn dies der Fall ist, wird der Inhalt der Datei in ein Array geladen und die Anzahl der Zeilen gezählt. Mit einer foreach-Schleife werden alle Zeilen durchgegangen und die einzelnen Felder werden in ein neues Array geladen. Durch eine weitere foreach-Schleife werden alle Felder durchgegangen und dabei eventuell vorhandene Anführungszeichen ersetzt. Zu guter Letzt wird ein HTML-Umbruch generiert, dadurch wird jede Zeile in einer neuen Zeile ausgegeben.

Wenn man dieses Script auf den Server lädt und die CSV Datei sich im gleichen Verzeichnis, wie das Script befindet. Wird beim Aufruf dieses Scriptes, die nachfolgende Ausgabe generiert. Die CSV Datei, die in diesem Tutorial verwendet wurde, haben wir mit unserem Vorgänger Tutorial generiert.

Ausgabe:

Es wurden in der CSV Datei: download.csv insgesamt 2 Zeilen gefunden.
1, Nico, Schubert, Klostegasse, 10, 07318, Saalfeld, Deutschland, info@schubertmedia.de
2, Max, Mustermann, Musterstrasse, 1, 11111, Musterhaus, Musterland, max.mustermann@musterhausen.de

Verwendete Funktionen:

echo() – Mit diesem Befehl kann man einen Text ausgeben.
explode() – Zeichenkette mit einem vordefinierten Trenner aufsplitten.
foreach Schleife – Arrays durchlaufen und ausgeben.
 

 

Tags:

 

Artikel hinzufügen bei:
         
Bücherregal mit drei Büchern: 'PHP 4 - Grundlagen und Profiwissen' von Hanser Verlag, 'Webdesign in a Nutshell' von O'Reilly Verlag, und 'Webgestaltung' von Galileo Computing.