Umweltdaten

Österreichische Umweltdaten

Internationale Umweltdaten

PHP Codebeispiele

Zur Verarbeitung verschiedener Dateiformate

Auslesen von CSV Dateien (Comma Separated Values)

<?php

// URL zur CSV Datei
$source = 'https://www.data.gv.at/katalog/dataset/f6166a7d-fd00-4644-8beb-ef7584019faf/resource/ef8e88b6-c5e4-4fe6-b6e2-f800beb4db6d/download/rpr.6it-schulungen-it-offentlichkeitsarbeitit-offentlichkeitsarbeitogd-screeningwasserspeicher-u.csv';

// Lokaler Dateipfad zur CSV Datei
//$source = 'file:///C:/testordner/test.csv';

// Feldtrenner (meist Komma oder Semikolon)
$delimiter = ';';

// Dateiinhalt zeilenweise in Array schreiben
$content = file( $source );

echo '<table border="1">';

// Array Zeile für Zeile durchiterieren
foreach( $content as $row ) {

  echo '<tr>';

  // Einzelne Spalten (= Zellen) der Zeile in Array schreiben
  $cells = explode( $delimiter, $row );

  foreach( $cells as $cell ) {
    echo '<td>' . $cell . '</td>';
  }

  echo '</tr>';

}

echo '</table>';

?>

XML/KML Dateien auslesen

<?php

// URL zur XML/KML Datei
$source = 'http://vogis.cnv.at/geoserver/ows?version=1.3.0&service=WMS&request=GetMap&crs=EPSG:4326&bbox=47.14,9.52,47.59,10.13&width=1&height=1&layers=vogis:stauseen&styles=&format=application/vnd.google-earth.kml+xml';

// Datenstruktur in PHP Objekt umwandeln
$xml = simplexml_load_file( $source );

// Alle Child-Elemente unter <Document> in Objekt schreiben
// Achtung: Elementnamen sind case sensitive
foreach ( $xml->Document as $doc ) {

  // Mit $doc->LookAt das Element <LookAt> ansprechen
  // Mit dem Zeiger (->) die Child-Elemente ausgeben
  // z.B. $doc->LookAt->longitude meint den Inhalt von
  // <LookAt>
  //   <longitude>Inhalt</longitude>
  // </LookAt>
  echo $doc->LookAt->longitude . '<br>';
  echo $doc->LookAt->latitude . '<br>';
  echo $doc->LookAt->altitude . '<br>';
  echo $doc->LookAt->heading . '<br>';
  echo $doc->LookAt->tilt . '<br>';
  echo $doc->LookAt->latitude . '<br>';

  // Wenn Attribute eines Element ausgegeben werden sollen, funktioniert das so:
  // z.B.:
  // <longitude id="1">
  // echo $doc->LookAt->longitude['id'] gibt "1" aus

}

?>

JSON Daten auslesen

<?php

// URL zur JSON Datei
$source = 'http://vogis.cnv.at/geoserver/ows?service=WFS&version=1.1.0&request=GetFeature&srsName=EPSG:31254&typeName=vogis:stauseen&outputFormat=application/json&maxFeatures=1000000';

// Dateiinhalt als String in Variable schreiben
$content = file_get_contents( $source );

// JSON Daten in PHP Objekt umwandeln
$json = json_decode( $content );

// Subobjekt "features" des JSON Objekts iterieren
foreach( $json->features as $feature ) {
  echo 'Type: ' . $feature->type . '<br>';
  echo 'ID: ' . $feature->id . '<br>';

  // "geometry" Objekt iterieren
  foreach( $feature->geometry as $geo ) {

    // In diesem Beispiel stehen die Koordinaten nur in den Arrays
    // Daher Objekteinträge überspringen, die keine Arrays sind
    if( ! is_array( $geo ) )
      continue;

    foreach( $geo[0][0] as $coord ) {
      echo '<p>' . $coord[0] . ' - ' . $coord[1]. '</p>';
    }

  }

}

?>

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.