IT rekvalifikace s garancí práce. Seniorní programátoři vydělávají až 160 000 Kč/měsíc a rekvalifikace je prvním krokem. Zjisti, jak na to!
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.

Diskuze: PHP parser

Aktivity
Avatar
meteos
Člen
Avatar
meteos:27.9.2012 20:59

Č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
Tvůrce
Avatar
Kit:27.9.2012 21:12

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
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:27.9.2012 21:22

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
Tvůrce
Avatar
Kit:27.9.2012 21:28

To je snad jasné, ne?

$datum=$data[1];
$cas=$data[2];
Nahoru Odpovědět
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:27.9.2012 21:41

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:10.3.2016 12:16

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.3.2016 12:16
Avatar
Michal Huff
Člen
Avatar
Odpovídá na Jiří Fabšic
Michal Huff:2.4.2016 22:11
  • 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.4.2016 22:11
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.