Autor Zpráva
Spid3r
Profil *
Dobrý den, mám dotaz, jak vytvořit php, které by umělo generovat grafy (denní a měsíční) z externího souboru a každých dejme tomu 20 minut? Php neumím, tak prosím o nějaké vysvětlení, co vůbec použít... Ps. ten externí soubor naleznete tady: http://onlinepanely.xf.cz/Pesos_0_20070529.txt . Všem děkuji Chroust
Ondřej Machala
Profil *
Bohužel to kvůli špatnému formátování externího souboru nebude možné protože sloupece nejsou fotmátovány tak, aby bylo možno pomocí php funkcí si jednotlivé části ořezat a uložit do proměnných nebo do pole.

Řešením by byl například tento formát:

29.05.2007;15:33:34;25256;050915 25256;09.75 h;09.25 h;006.453 kWh;320.0 V;243 V;02.80 A;682 W;+40.40 °C;0;WRV05.095;

00.00.0000;00:00:00;00000;000000 00000;00.00 h;00:00 h;000.000 kWh;000.0 V;000 V;00.00 A;000 W;+00.00 C;0,WRV00.000;
sventek
Profil *
Já myslím, že ta data jsou naprosto v pořádku, stačí to prohnat funkcí fgetcsv (http://cz.php.net/manual/cs/function.fgetcsv.php) a rozparsovat na sloupce. Nebo ještě lépe rovnou házet do pole, které se odešle třídě na tvorbu grafů
Ondřej Machala
Profil *
Takto to 100% fungovat nebude.. rozparsovat jednotlivé řádky problém není ale touto funkcí si se sloupci neporadíš ;-)

Jedinou realnou možností řádky z array() vytáhnout a dále jednotlivé hodnoty ukládat do proměnných nebo dalšího pole pomocí funkce substr();
Spid3r
Profil *
Aha, i tak vám moc děkuji.
bukaj
Profil
Spid3r
Zkusils třeba použít Google? IMHO nejsi první, kdo chce generovat grafy v PHP.

Jde to za použití fcí pro parsování textu a fcí GD knihovny.

Přes file() rozdělíš soubor po řádcích do pole. Potom s explode() (nebo split() či preg_split()) rozdělíš v cyklu každý řádek na pole, ze kterého vytáhneš hodnoty, které jsou potřeba.

A pak nastupují na řadu fce GD knihovny:
imagecreatetruecolor - vytvoření prázdného obrázku.
imageline - kreslení čáry.
imagefillrectangle - kreslení vyplněného obdélníku.
...atd. atp. apod.

**edit: Ještě jsem zapomněl na to automatické generování po 20-ti minutách. Odpověd zní: CRON.
Ondřej Machala
Profil *
bukaj:

Jenže řádek na pole se mu kvůli nejednotnému formátování nepodaří rozdělit! viz odkaz na soubor s daty!
bukaj
Profil
Ondřej Machala
Mě se to podařilo. To, že to ty neumíš ještě neznamená, že to nejde :)

PS. Nevykřičníkuj tady!!! :)
sventek
Profil *
Ondřej Machala: asi jsem slepý nebo natvrdlý, ale proč by nešlo si při tom parsováním přes tu funkci házet do různých polí podle toho ve kterém je to sloupci - neprošel jsem to teda celé, ale zběžně to vypadá, že jsou pořád stejně rozdělené? Popř. při třídění do polí odřezávat jednotku, aby tam nehaprovala
sventek
Profil *
bukaj:
Studovat GD knihovnu taky myslím, není potřeba, když píše, že s php neumí, bude lepší použít nějakou knihovnu - třeba [url=http://www.aditus.nu/jpgraph/]JPGraph/url]

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0