wat is er fout aan dit script
wat klopt er niet?
Code (php)
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
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
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
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
<?php
$gegevens = array(10, 30, 40);
$kleuren = array('#FF0000', '#00FF00', '#0000FF');
$legenda = array('Type A', 'Type B', 'Type C');
$img_hoogte = 500; # Hoogte van het plaatje
$breedte = 40; # Breedte van de kolom
# Berekend de breedte van het plaatje excl. de legenda breedte
function kolom_hoogte($deel, $max, $img_hoogte, $breedte){
return ($deel/$max)*($img_hoogte-(0.5*$breedte));
}
# Voor het 3d effect (half cosinus 30)
function schuin_x($breedte){
return $breedte*0.43;
}
# Voor het 3d effect (half sinus 30)
function schuin_y($breedte){
return $breedte*0.25;
}
# Zet de HTML kleur om in een rbg waarde.
function hex2rbg($color, $image){
$string = str_replace('#','',$color);
return imagecolorallocate($image, hexdec(substr($string,0,2)), hexdec(substr($string,2,2)), hexdec(substr($string,4,2)));
}
# Berekend het maximum aantal tekens per array waarde en geeft de lengte van de langste terug.
function maxarraylength($input){
foreach($input as $v){
$output[] = strlen($v);
}
return max($output);
}
header("content-type: image/png");
# grootte van het plaatje basseren op het aantal kolomen:
$kolomen = count($gegevens);
$width = ($kolomen*$breedte*2)+(0.5*$breedte);
$image = imagecreate($width+(maxarraylength($legenda)*7)+25, ($img_hoogte+1));
# Achtergrond:
$bg = imagecolorallocate($image, 255, 255, 255);
# KOLUMS
for($i=0;$i<$kolomen;$i++){
# vars:
$begin = ($i*$breedte)+($i*$breedte)+(0.5*$breedte);
$hoogte = kolom_hoogte($gegevens[$i], max($gegevens), $img_hoogte, $breedte);
$kleur = hex2rbg($kleuren[$i], $image);
$black = imagecolorallocate($image, 0, 0, 0);
# kolom:
imagefilledrectangle($image, $begin, ($img_hoogte-$hoogte), ($begin+$breedte), $img_hoogte, $kleur); # Vlak
imagerectangle($image, $begin, ($img_hoogte-$hoogte), ($begin+$breedte), $img_hoogte, $black); # Omlijning
# 3d effect:
$punten = array(
$begin,#X
($img_hoogte-$hoogte),#Y
($begin+schuin_x($breedte)),#X
($img_hoogte-$hoogte-schuin_y($breedte)),#Y
($begin+$breedte+schuin_x($breedte)),#X
($img_hoogte-$hoogte-schuin_y($breedte)),#Y
($begin+$breedte+schuin_x($breedte)),#X
($img_hoogte-schuin_y($breedte)),#Y
($begin+$breedte),#X
$img_hoogte,#Y
($begin+$breedte),#X
($img_hoogte-$hoogte)#Y
);
imagefilledpolygon($image, $punten, 6, $kleur); # Vlak
imagepolygon($image, $punten, 6, $black); # Omlijning
imageline($image, $punten[10], $punten[11], $punten[4], $punten[5], $black); # Tussen lijn
# Legenda:
$top = (15*$i)+(15*$i)+(0.5*$breedte);
$left = ($kolomen*$breedte)+($kolomen*$breedte)+(0.5*$breedte);
imagefilledrectangle($image, $left, $top*0.5, $left+15, $top*0.5+10, $kleur); # Vlak
imagerectangle($image, $left, $top*0.5, $left+15, $top*0.5+10, $black); # Omlijning
imagestring($image, 3, $left+20, $top*0.5, $legenda[$i], $black); # Text
}
# // KOLUMS
imagepng($image);
imagedestroy($image);
?>
$gegevens = array(10, 30, 40);
$kleuren = array('#FF0000', '#00FF00', '#0000FF');
$legenda = array('Type A', 'Type B', 'Type C');
$img_hoogte = 500; # Hoogte van het plaatje
$breedte = 40; # Breedte van de kolom
# Berekend de breedte van het plaatje excl. de legenda breedte
function kolom_hoogte($deel, $max, $img_hoogte, $breedte){
return ($deel/$max)*($img_hoogte-(0.5*$breedte));
}
# Voor het 3d effect (half cosinus 30)
function schuin_x($breedte){
return $breedte*0.43;
}
# Voor het 3d effect (half sinus 30)
function schuin_y($breedte){
return $breedte*0.25;
}
# Zet de HTML kleur om in een rbg waarde.
function hex2rbg($color, $image){
$string = str_replace('#','',$color);
return imagecolorallocate($image, hexdec(substr($string,0,2)), hexdec(substr($string,2,2)), hexdec(substr($string,4,2)));
}
# Berekend het maximum aantal tekens per array waarde en geeft de lengte van de langste terug.
function maxarraylength($input){
foreach($input as $v){
$output[] = strlen($v);
}
return max($output);
}
header("content-type: image/png");
# grootte van het plaatje basseren op het aantal kolomen:
$kolomen = count($gegevens);
$width = ($kolomen*$breedte*2)+(0.5*$breedte);
$image = imagecreate($width+(maxarraylength($legenda)*7)+25, ($img_hoogte+1));
# Achtergrond:
$bg = imagecolorallocate($image, 255, 255, 255);
# KOLUMS
for($i=0;$i<$kolomen;$i++){
# vars:
$begin = ($i*$breedte)+($i*$breedte)+(0.5*$breedte);
$hoogte = kolom_hoogte($gegevens[$i], max($gegevens), $img_hoogte, $breedte);
$kleur = hex2rbg($kleuren[$i], $image);
$black = imagecolorallocate($image, 0, 0, 0);
# kolom:
imagefilledrectangle($image, $begin, ($img_hoogte-$hoogte), ($begin+$breedte), $img_hoogte, $kleur); # Vlak
imagerectangle($image, $begin, ($img_hoogte-$hoogte), ($begin+$breedte), $img_hoogte, $black); # Omlijning
# 3d effect:
$punten = array(
$begin,#X
($img_hoogte-$hoogte),#Y
($begin+schuin_x($breedte)),#X
($img_hoogte-$hoogte-schuin_y($breedte)),#Y
($begin+$breedte+schuin_x($breedte)),#X
($img_hoogte-$hoogte-schuin_y($breedte)),#Y
($begin+$breedte+schuin_x($breedte)),#X
($img_hoogte-schuin_y($breedte)),#Y
($begin+$breedte),#X
$img_hoogte,#Y
($begin+$breedte),#X
($img_hoogte-$hoogte)#Y
);
imagefilledpolygon($image, $punten, 6, $kleur); # Vlak
imagepolygon($image, $punten, 6, $black); # Omlijning
imageline($image, $punten[10], $punten[11], $punten[4], $punten[5], $black); # Tussen lijn
# Legenda:
$top = (15*$i)+(15*$i)+(0.5*$breedte);
$left = ($kolomen*$breedte)+($kolomen*$breedte)+(0.5*$breedte);
imagefilledrectangle($image, $left, $top*0.5, $left+15, $top*0.5+10, $kleur); # Vlak
imagerectangle($image, $left, $top*0.5, $left+15, $top*0.5+10, $black); # Omlijning
imagestring($image, 3, $left+20, $top*0.5, $legenda[$i], $black); # Text
}
# // KOLUMS
imagepng($image);
imagedestroy($image);
?>
Haal de content-type header eens weg en roep het script rechtstreeks aan zodat je eventuele foutmeldingen kan zien.
Toevoeging op 11/08/2015 21:43:30:
maar in de balk niet de <title></title>
Toevoeging op 11/08/2015 21:57:35:
ah, ik heb het 3d effect eruit gehaald en nu krijg ik een waslijst aan fouten. Ik kan weer even verder :-)
Content type moet met 2x hoofdletters: Content-Type
ik heb het veranderd maar het effect blijft hetzelfde
Lex moen op 11/08/2015 21:40:39:
... en nu krijg ik een waslijst aan fouten.
Zoals?
‰PNG IHDRGõ—e!&PLTEÿÿÿÿÿÿhį‹²IDATxœíÜ]júLÀañ^WÐfº€B³…zÝ›fÿKxã׋3ùK<¦‡òü(Tj.ÎÌZhf3I’þHË®ÐÅûÍ©_ö-¾îÚ]"ßW‡Ö¿&¬vW$@Œ_?_eäýšO³ º‚±ÿYe’·¤ùÛüí׌uäžÕ4o§N‚¬ÿœ5'ÝÈeÁ¸ûz¹Ÿf<~{©±x°Cm¯Ÿä€qààô³ë¿&[îÒæì¾D^Üqšìðj¢ƒSþ„¼GÞtDNÕ8d?ÂüȉûSÈöTjäçæÐ2y·æ‹—o‚“¼%-> ‘{VÛ~ÌŽ#ÌŒœµ']Òå>#÷ÓÌ?ÉÃ[I‘ýfÜïÉór§A^ÜqÚìðêxpÒìÉ›ŽÈ©‡ìg—9q YøC[>dáHÈ'‘÷kþòM0b’·¤å÷ò;!rÏêºïÓ_M|9ëN#LŽÜO3=ò¨KŠì7ã~Oþ¿ÜYÎŧ;À¯ºÓ{¯5Ž½w‘S5ÙÏ.?râ £‚Œ 2*Ȩ £‚Œ 2*Ȩ £‚Œ 2*Ȩ £‚Œ 2*Ȩ £‚Œ 2*Ȩ £‚Œ 2*Ȩ £‚Œ 2*Ȩ £‚Œ 2*Ȩ £‚Œ 2*Ȩ £‚|´E[(rqúçñ˶ÉEãçå7 ÆÍç&²-ÛM.dŘ Y3fB. Æí&²|°s!Œy¥ÍÙYþ„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„|²yS(rþ¾ºkY4¾¯s!ÆÕû*²)ûŸ¥BVŒ©5c&ä¼`\¯r!Ë;rÀ˜YºÑœÝiåOHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHÈ#×o!·!wßñÈ+ãòÊ8€o@^WÆäxcÙ\_WE¶××U‘Ýxcyc¬"oŒUä3ÆòÖXCÞkȧŒ<åo¹½»®Œ|Å£¯vy}°ëÈ'vÙÜ‹ÈöÞXDvO‹ÏU+gm¡‚qÖgüt{šËXâ‘IEND®B`‚
Dit komt omdat je geen Content-Type image/png gebruikt.
error_reporting(E_ALL);
ini_set('display_errors', 'stdout');
bovenaan de pagina staat
totaal:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>Untitled</title>
</head>
<body>
Code (php)
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
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
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
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
<?php
error_reporting(E_ALL);
ini_set('display_errors', 'stdout');
$gegevens = array(10, 30, 40);
$kleuren = array('#FF0000', '#00FF00', '#0000FF');
$legenda = array('Type A', 'Type B', 'Type C');
$img_hoogte = 500; # Hoogte van het plaatje
$breedte = 40; # Breedte van de kolom
# Berekend de breedte van het plaatje excl. de legenda breedte
function kolom_hoogte($deel, $max, $img_hoogte, $breedte){
return ($deel/$max)*($img_hoogte-(0.5*$breedte));
}
# Voor het 3d effect (half cosinus 30)
//function schuin_x($breedte){
// return $breedte*0.43;
}
# Voor het 3d effect (half sinus 30)
//function schuin_y($breedte){
// return $breedte*0.25;
}
# Zet de HTML kleur om in een rbg waarde.
function hex2rbg($color, $image){
$string = str_replace('#','',$color);
return imagecolorallocate($image, hexdec(substr($string,0,2)), hexdec(substr($string,2,2)), hexdec(substr($string,4,2)));
}
# Berekend het maximum aantal tekens per array waarde en geeft de lengte van de langste terug.
function maxarraylength($input){
foreach($input as $v){
$output[] = strlen($v);
}
return max($output);
}
header("Content-Type: image/png");
# grootte van het plaatje basseren op het aantal kolomen:
$kolomen = count($gegevens);
$width = ($kolomen*$breedte*2)+(0.5*$breedte);
$image = imagecreate($width+(maxarraylength($legenda)*7)+25, ($img_hoogte+1));
# Achtergrond:
$bg = imagecolorallocate($image, 255, 255, 255);
# KOLUMS
for($i=0;$i<$kolomen;$i++){
# vars:
$begin = ($i*$breedte)+($i*$breedte)+(0.5*$breedte);
$hoogte = kolom_hoogte($gegevens[$i], max($gegevens), $img_hoogte, $breedte);
$kleur = hex2rbg($kleuren[$i], $image);
$black = imagecolorallocate($image, 0, 0, 0);
# kolom:
imagefilledrectangle($image, $begin, ($img_hoogte-$hoogte), ($begin+$breedte), $img_hoogte, $kleur); # Vlak
imagerectangle($image, $begin, ($img_hoogte-$hoogte), ($begin+$breedte), $img_hoogte, $black); # Omlijning
// # 3d effect:
// $punten = array(
// $begin,#X
// ($img_hoogte-$hoogte),#Y
// ($begin+schuin_x($breedte)),#X
// ($img_hoogte-$hoogte-schuin_y($breedte)),#Y
//
// ($begin+$breedte+schuin_x($breedte)),#X
// ($img_hoogte-$hoogte-schuin_y($breedte)),#Y
//
// ($begin+$breedte+schuin_x($breedte)),#X
// ($img_hoogte-schuin_y($breedte)),#Y
//
// ($begin+$breedte),#X
// $img_hoogte,#Y
//
// ($begin+$breedte),#X
// ($img_hoogte-$hoogte)#Y
// );
// imagefilledpolygon($image, $punten, 6, $kleur); # Vlak
// imagepolygon($image, $punten, 6, $black); # Omlijning
// imageline($image, $punten[10], $punten[11], $punten[4], $punten[5], $black); # Tussen lijn
# Legenda:
$top = (15*$i)+(15*$i)+(0.5*$breedte);
$left = ($kolomen*$breedte)+($kolomen*$breedte)+(0.5*$breedte);
imagefilledrectangle($image, $left, $top*0.5, $left+15, $top*0.5+10, $kleur); # Vlak
imagerectangle($image, $left, $top*0.5, $left+15, $top*0.5+10, $black); # Omlijning
imagestring($image, 3, $left+20, $top*0.5, $legenda[$i], $black); # Text
}
# // KOLUMS
imagepng($image);
imagedestroy($image);
?>
error_reporting(E_ALL);
ini_set('display_errors', 'stdout');
$gegevens = array(10, 30, 40);
$kleuren = array('#FF0000', '#00FF00', '#0000FF');
$legenda = array('Type A', 'Type B', 'Type C');
$img_hoogte = 500; # Hoogte van het plaatje
$breedte = 40; # Breedte van de kolom
# Berekend de breedte van het plaatje excl. de legenda breedte
function kolom_hoogte($deel, $max, $img_hoogte, $breedte){
return ($deel/$max)*($img_hoogte-(0.5*$breedte));
}
# Voor het 3d effect (half cosinus 30)
//function schuin_x($breedte){
// return $breedte*0.43;
}
# Voor het 3d effect (half sinus 30)
//function schuin_y($breedte){
// return $breedte*0.25;
}
# Zet de HTML kleur om in een rbg waarde.
function hex2rbg($color, $image){
$string = str_replace('#','',$color);
return imagecolorallocate($image, hexdec(substr($string,0,2)), hexdec(substr($string,2,2)), hexdec(substr($string,4,2)));
}
# Berekend het maximum aantal tekens per array waarde en geeft de lengte van de langste terug.
function maxarraylength($input){
foreach($input as $v){
$output[] = strlen($v);
}
return max($output);
}
header("Content-Type: image/png");
# grootte van het plaatje basseren op het aantal kolomen:
$kolomen = count($gegevens);
$width = ($kolomen*$breedte*2)+(0.5*$breedte);
$image = imagecreate($width+(maxarraylength($legenda)*7)+25, ($img_hoogte+1));
# Achtergrond:
$bg = imagecolorallocate($image, 255, 255, 255);
# KOLUMS
for($i=0;$i<$kolomen;$i++){
# vars:
$begin = ($i*$breedte)+($i*$breedte)+(0.5*$breedte);
$hoogte = kolom_hoogte($gegevens[$i], max($gegevens), $img_hoogte, $breedte);
$kleur = hex2rbg($kleuren[$i], $image);
$black = imagecolorallocate($image, 0, 0, 0);
# kolom:
imagefilledrectangle($image, $begin, ($img_hoogte-$hoogte), ($begin+$breedte), $img_hoogte, $kleur); # Vlak
imagerectangle($image, $begin, ($img_hoogte-$hoogte), ($begin+$breedte), $img_hoogte, $black); # Omlijning
// # 3d effect:
// $punten = array(
// $begin,#X
// ($img_hoogte-$hoogte),#Y
// ($begin+schuin_x($breedte)),#X
// ($img_hoogte-$hoogte-schuin_y($breedte)),#Y
//
// ($begin+$breedte+schuin_x($breedte)),#X
// ($img_hoogte-$hoogte-schuin_y($breedte)),#Y
//
// ($begin+$breedte+schuin_x($breedte)),#X
// ($img_hoogte-schuin_y($breedte)),#Y
//
// ($begin+$breedte),#X
// $img_hoogte,#Y
//
// ($begin+$breedte),#X
// ($img_hoogte-$hoogte)#Y
// );
// imagefilledpolygon($image, $punten, 6, $kleur); # Vlak
// imagepolygon($image, $punten, 6, $black); # Omlijning
// imageline($image, $punten[10], $punten[11], $punten[4], $punten[5], $black); # Tussen lijn
# Legenda:
$top = (15*$i)+(15*$i)+(0.5*$breedte);
$left = ($kolomen*$breedte)+($kolomen*$breedte)+(0.5*$breedte);
imagefilledrectangle($image, $left, $top*0.5, $left+15, $top*0.5+10, $kleur); # Vlak
imagerectangle($image, $left, $top*0.5, $left+15, $top*0.5+10, $black); # Omlijning
imagestring($image, 3, $left+20, $top*0.5, $legenda[$i], $black); # Text
}
# // KOLUMS
imagepng($image);
imagedestroy($image);
?>
</body>
</html>
Gewijzigd op 12/08/2015 09:47:13 door - Ariën -
header("Content-Type: image/png"); ?
Da's juist prima!
maar ik heb nogsteeds een blanco pagina :-(
Toevoeging op 12/08/2015 09:54:39:
header even wegcommenten, en kijken welke error je dan nog ziet.
Toevoeging op 12/08/2015 10:03:48:
heb ook nog echo"fout"; ingevoegd, maar nog steeds blanco
Display_errors setting op 1 zetten i.p.v stdout. Misschien dat dat verschil geeft? Ik heb deze notatie nooit zo gezien.
www.algenie.eu/test.php kan het script 'gewoon' gestopt zijn?
nee.Nog steeds blanco. wat me wel opvalt is dat in de balk alleen het websiteadres staat error_reporting(E_ALL);
ini_set('display_errors', 1);
Heb dat probleem ook altijd op productie omgevingen, wanneer het framework voor me bepaalt wat de error reporting levels zijn, maar soms maak je foutjes op de productie omgeving zelf :P
nee, dus
Opmerking: Als ik je code selecteer tot aan de eindtag, dan komt het goed.. als ik de spatie mee kopieer die er achter staat dan werkt het niet meer ;-)
12/08/2015 09:36:49: Parse error: syntax error, unexpected '}' in C:\wamp\www\phphulp\image.php on line 18
Gewijzigd op 12/08/2015 11:14:44 door E vH