[PHP] raw data van een plaatje weergeven in html

Pagina: 1
Acties:

Onderwerpen


Verwijderd

Topicstarter
we zijn momenteel bezig om aan de hand van een shell commando op een linux bak een grafiek in html weer te geven, daarvoor gebruiken we het volgende script;

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
<?php

// Variables expected by these functions:
//
// GraphTitle   =   Title on top of graph (e.g. Users @ $hostname)
// StartTime    =   Start-time of graph in epoch-time
// EndTime  =   End-time of graph in epoch-time, also the word 'now' is accepted!
// GraphWidth   =   Width in pixels of the graph (e.g. 400, 600 or 800)
// GraphHeight  =   Height in pixels of the graph (e.g. 200, 400 or 600)
// DataBase =   Name of the database (e.g. /home/mrtg/var/rrd/$hostname.rrd)
// Footer   =   Footer in graph (e.g. Copyright ICT Infra.)
//

$GraphTitle="Bla Bla";
$StartTime=1099993307;
$EndTime=1100079707;
$GraphWidth=800;
$GraphHeight=600;
$DataBase="/home/mrtg/var/rrd/$server.rrd";
$Footer="Test Graph ";

$cmd="--base=1000 -l 0 --interlaced DEF:users=$DataBase:users:MAX ";
$cmd.="DEF:uusers=$DataBase:uusers:MAX \"AREA:users#0000FF:total_users \" ";
$cmd.="\"GPRINT:users:AVERAGE:Average=%.0lf users\" \"GPRINT:users:MAX:Maximum=%.0lf ";
$cmd.="users\" \"GPRINT:users:LAST:Current=%.0lf users\" \"COMMENT:\\n\" ";
$cmd.="\"AREA:uusers#00A0C1:unique_users\" \"GPRINT:uusers:AVERAGE:Average=%.0lf users\" ";
$cmd.="\"GPRINT:uusers:MAX:Maximum=%.0lf users\" \"GPRINT:uusers:LAST:Current=%.0lf users\"";
$cmd.=" \"COMMENT:\\n\" \"COMMENT:\\n\" COMMENT:\"$Footer\"";


// echo $cmd;


function rrd_draw( $cmd )
{
    if( isset( $_GET['size'] ) ) $size = $_GET['size']; else $size = 'm';
    if( isset( $_GET['scope'] ) ) $scope = $_GET['scope']; else $scope = 'd';

    switch( $scope )
    {
    case 'd':
        $start = '-86400';
        break;
    case 'w':
        $start = '-604800';
        break;
    case 'y':
        $start = '-31622400';
        break;
    }
    switch( $size )
    {
    case 's':
        $width = '200'; $height='50';
        break;
    case 'm':
        $width = '400'; $height='100';
        break;
    case 'l':
        $width = '800'; $height='200';
        break;
    }

    passthru( "/usr/bin/rrdtool graph - -a PNG -s $start"
              . " -w $width -h $height"
              . $cmd );
}
rrd_draw($cmd);
?>


dit script include wij, echter geeft de output van deze file RAW data terug, zoiets als ;

code:
1
&#8240;PNG  IHDRïÂååg4PLTEÿÿÿõõõÈÈÈ&#8211;&#8211;&#8211;&#338;&#338;&#338;&#8218;ÿÿ Á ðìU èIDATxí]Ë&#381;Ü6-Î"».&#8212;íÝ8þþn $»i`zœ¬


passthru geeft volgens de manual ook raw data weer, maar mijn inziens ook de enige manier om het commando uit te voeren...

wanneer je deze file apart in een browser opent, dus zonder HTML eromheen, maar wel de variabelen ingevuld, geeft hij wel het plaatje weer.

Verwijderd

De data niet direct in je html includen maar op de volgende manier:

[img]"url[/img]

[ Voor 13% gewijzigd door Verwijderd op 11-11-2004 11:32 ]


Verwijderd

En een imageheader erboven zetten?

  • GewoonNico
  • Registratie: April 2003
  • Laatst online: 21:11
PHP:
1
2
3
4
5
<?

echo("[img]\"plaatje.php?info=3234\">");

?[/img]

Zo moet het wel werken
Vergeet ook de image header niet

[ Voor 33% gewijzigd door GewoonNico op 11-11-2004 11:36 . Reden: damn, iets te laat ]


Verwijderd

Topicstarter
8)7 8)7 8)7 8)7 8)7 8)7

waarschijnlijk de donderdagmorgen-programmeer-perikelen... hartelijk dank voor jullie reactie

problem solved

[ Voor 11% gewijzigd door Verwijderd op 11-11-2004 11:38 ]