Avatar billede michael_stim Ekspert
20. oktober 2005 - 11:08 Der er 1 kommentar og
1 løsning

Checke om billede eksisterer

Har et image der bliver genereret on the fly, men har lidt problemer med at checke om der er et billede. Hvis filesize er 0 byte skal der sættes et andet billede ind.
Har prøvet at lægge hele "genereringen" ind i en funktion og så returnere false, hvis der ikke er noget. Men så brokker den sig over headeren allerede er sendt (når jeg requirer filen).

<img src="../orderforecast/lev_graph.php?<?php echo "varenr=".$_GET['varenr']."&kampnr=".$_GET['kampnr']."&kundetype=".$_GET['kundetype']."&uge=".$_GET['uge'];?>" alt="" height="372" width="622" border="0">

function graf($varenr, $kampnr){
// Some data
    $streger=new ora_functions();
    $fast_est=$streger->get_estimat_graph($varenr, $kampnr);
    $estimat=$streger->get_estdato_by_date($varenr, $kampnr);
    $resultat=$streger->get_order_by_date($varenr, $kampnr);
    $ydata = $estimat;
    $ydata2 = $resultat;
    $ydata3 = $fast_est;
    if(count($ydata)>0){
    // Create the graph. These two calls are always required
    $graph = new Graph(620, 370);
    $graph->SetBackgroundGradient('white','white',GRAD_HOR,BGRAD_MARGIN);
    $graph->SetFrame(false);
    $graph->img->SetMargin(30,10,10,10);
    $graph->SetColor('lightblue');
    $lineplot =new LinePlot($ydata);
    $lineplot->SetColor("red");
    $lineplot->SetWeight(2);
    $lineplot2=new LinePlot($ydata2);
    $lineplot2->SetColor("black");
    $lineplot2->SetWeight(2);
    $lineplot3=new LinePlot($ydata3);
    $lineplot3->SetColor("blue");
    $lineplot3->SetWeight(2);
    $graph->SetScale( "textlin");
    // Create the linear plot
    $graph->legend->Pos(0.5,0.5,'left','top');
    $graph->legend->SetLayout(LEGEND_HOR);
    // Add the plot to the graph
    $graph->Add($lineplot);
    $graph->Add($lineplot2);
    $graph->Add($lineplot3);
    // Display the graph
    $graph->Stroke();
    }
    else {
        return false;
    }
}
if(isset($_GET['varenr'])){

    $varenr=$_GET['varenr'];
    $kampnr=$_GET['kampnr'];
    $kundetype=$_GET['kundetype'];
    $uge=$_GET['uge'];
    if(graf($varenr, $kampnr)){
        graf($varenr, $kampnr);
    }
}

Bruger JPgraph.

Behøver ikke lige være den løsning, åben for alle forslag ;o)
Avatar billede bromer Nybegynder
20. oktober 2005 - 11:16 #1
Du kan lave en PHP funktion der retunerer path'en til et statisk billede den har genereret eller false hvis det ikke lykkes.

Jeg lavede engang en masse billeder på den måde, hvor der var så mange brugere at jeg blev nød til at lægge dem statisk. Så havde jeg en lille daemon der stod og opdaterede dem hvert 5 min.
Avatar billede michael_stim Ekspert
01. november 2005 - 21:22 #2
Droppede funktionen og lagde et simpelt if-vilkår ind i stedet. Og brugte imagecreatefrompng() til at "generere" en ny png, hvis vilkåret var falskt.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester