PHP :: Aufgabe #3 :: Lösung #1
3 Lösungen

#3
CSV-Datei auslesen und aus den Daten eine Tabelle und ein Diagramm erzeugen
Fortgeschrittener - PHP
von Gustl
- 16.08.2012 um 10:35 Uhr
Erstellen Sie ein PHP- Skript, das die angehängte CSV- Datei (EUR/USD Dollarkurs von einem Jahr) in ein Array einliest. Diese eingelesenen Werte sollen in einer Tabelle dargestellt werden und sich in einem Linien-, Punkt- oder Balkendiagramm widerspiegeln.
In dem Diagramm soll nur jeder vierte Wert ausgegeben werden.
Das Datum soll in folgendes Format konvertiert werden: DD.MM.YY (16.08.12)
In dem Diagramm soll nur jeder vierte Wert ausgegeben werden.
Das Datum soll in folgendes Format konvertiert werden: DD.MM.YY (16.08.12)
#1

von alxy (60 Punkte)
- 17.08.2012 um 01:30 Uhr

<?php class Csv { protected $csvArray = array(); protected $htmlTable = ''; public function __construct( $file ) { $this->importCsvData( $file ); $this->makeTable( $this->csvArray ); } protected function importCsvData( $file ) { $handle = fopen( $file, 'r' ); while( ($line = fgetcsv( $handle, 0, ';' )) !== FALSE ){ $this->csvArray[] = $line; } fclose($handle); $this->csvArray = $this->modifyArray( $this->csvArray ); } protected function modifyArray( array$array ) { foreach ( $array as &$subarray ) { $keys = array_keys( $subarray, NULL ); foreach ( $keys as $key ) { unset( $subarray[$key] ); } if ( isset($subarray[0]) ) { $subarray[0] = $this->formatDate( $subarray[0] ); } } return $array; } protected function formatDate( $date ) { if ( $this->isValidDate( $date ) ) { $oDateTime = new DateTime( $date ); return $oDateTime->format( 'd.m.y' ); } return $date; } protected function isValidDate( $str ) { $stamp = strtotime( $str ); if (!is_numeric($stamp)) { return FALSE; } $month = date( 'm', $stamp ); $day = date( 'd', $stamp ); $year = date( 'Y', $stamp ); if (checkdate($month, $day, $year)) { return TRUE; } return FALSE; } protected function makeTable( array$array ) { $html = '<table>'; foreach ( $array as $subarray ) { $html .= '<tr>'; foreach ( $subarray as $value ) { $html .= '<td>' . $value . '</td>'; } $html .= '</tr>'; } $html .= '</table>'; $this->htmlTable = $html; } public function printArray() { return $this->csvArray; } public function printTable() { return $this->htmlTable; } } $csv = new Csv( 'csv.csv' ); echo $csv->printTable();
Das mit dem Diagramm habe ich jetzt nicht verstanden... soll das auch mit PHP umgesetzt werden?
Kommentare:
Für diese Lösung gibt es noch keinen Kommentar
Seite 1 von 0
1