Avatar
meteos
Člen
Avatar
meteos:

Čaute lidi,

chtěl bych se zeptat, jak udělat jednoduchý PHP parser dat z tohoto kódu, který generuje nějaký program a dává na http://www.hvezdarna.cz/…astmeteodata v této podobě:

20120927205307 2012-Sep-27 20:53:07 25.4 15.1 7.9 40 62 0.0 270.0 W 15.1 0.00 0.00 227.92 1014.900 Rising Sunny

Potřeboval bych, aby vyparsoval vždy určitou hodnotu z kódu a uložil třeba do proměnné.

Předem děkuji za odpověď.

 
Odpovědět 27.9.2012 20:59
Avatar
Kit
Redaktor
Avatar
Kit:

Pokud bude vyhovovat parsování podle mezery, zkus tohle:

<?php
$file=fopen('http://www.hvezdarna.cz/meteo/lastmeteodata','r');
$data=fgetcsv($file,0,' ');
fclose($file);
print_r($data);
Editováno 27.9.2012 21:12
Nahoru Odpovědět  +5 27.9.2012 21:12
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
meteos
Člen
Avatar
meteos:

To je moc dobré !

A mohu se zeptat, jak uložit do proměnné jen jedno pole? Třeba jen pole s časem?

 
Nahoru Odpovědět 27.9.2012 21:22
Avatar
Kit
Redaktor
Avatar
Kit:

To je snad jasné, ne?

$datum=$data[1];
$cas=$data[2];
Nahoru Odpovědět  +2 27.9.2012 21:28
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
meteos
Člen
Avatar
meteos:

Omlouvám se, přišel jsem na to, ale otázka tu už byla. Velice moc děkuji za čas a odpovědi ;-)

 
Nahoru Odpovědět 27.9.2012 21:41
Avatar
Jiří Fabšic:

Ahoj,

chtěl bych se zeptat, proč mi v následujícím kódu nefunguje kódování UTF-8. Po načtení z CSV souboru a následném výpisu pole nezobrazí znaky typu č,ř atd.

V indexu mám kódování nastaveno

//nastaveni kodovani
mb_internal_encoding("UTF-8");

Samotný kód vypadá takto:

public function createArrayFromCSV() {

          $handle = fopen ($this->directory . '/' . $this->file,"r");

          while ($data = (fgetcsv ($handle, 1000, "\r"))) {

                  $line_array = explode(";", $data[0]);

                  $i=0;

                  foreach($this->csv_columns as $key) {
                          $ret[$key][]            =       $line_array[$i];
                          $i++;
                  }
           }
          print_r($ret);   //pouze kontrola správného (v mém případě špatného :-) ) vypsání
          return $ret;
  }

Díky moc za podněty a pomoc,
Jirka

 
Nahoru Odpovědět 10. března 12:16
Avatar
Michal Huff
Člen
Avatar
Odpovídá na Jiří Fabšic
Michal Huff:
  • zaloz si novy topic na foru
  • odpoved na tvoji otazku: ja utf-8 nepouzivam, protoze z neznamych duvodu mi taky ceske znaky nefungujou, i kdyz by mely. Tak zkus pouzit windows-1250
Nahoru Odpovědět 2. dubna 22:11
Než položím hloupou otázku, použiji google.
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 7 zpráv z 7.