Algemeen forum ontrent de ontwikkelng, design en hosting van weergerelateerde websites (dit laatste om een beetje on topic te blijven)
#73592
Hallo,

ik gebruik een MOS script voor de verwachting op mijn site.
Nu kreeg ik van Joomla de melding, dat mijn huidige PHP-versie straks geen ondersteuning meer krijgt en dat ik moet upgraden.

Dit heb ik gedaan en nu werkt de MOS-script niet meer. Grafiek wordt niet meer ingevuld.

Hoe kan ik dat veranderen, zonder te downgraden?

https://www.meteohoogeveen.nl/joomla3/wsMos/mos6.php

Groet,

Bert
#73593
Meteo Hoogeveen schreef: 15 nov 2021, 08:53 Hallo,
ik gebruik een MOS script voor de verwachting op mijn site.
Nu kreeg ik van Joomla de melding, dat mijn huidige PHP-versie straks geen ondersteuning meer krijgt en dat ik moet upgraden.
Dit heb ik gedaan en nu werkt de MOS-script niet meer. Grafiek wordt niet meer ingevuld.
Hoe kan ik dat veranderen, zonder te downgraden?
https://www.meteohoogeveen.nl/joomla3/wsMos/mos6.php
Groet,
Bert
Dit betreft vermoedelijk het script ?
// hwa-mosgraphic.php script by Jacco Gebben - info@hetweerinruinen.nl
Vraag 1: Kunt u posten welke versie van PHP u vroeger en welke versie u nu gebruikt?
PHP 7.4 security support is er tot 28 Nov 2022 , zie https://www.php.net/supported-versions.php

Vraag 2: Kunt u
=> een kopie maken van het script wsMos/mos6.php wat u nu gebruikt,
=> de kopie hernoemen als mos6.txt
=> uw HWA key op "xxx" zetten,in de oude versie staat die key op regel 10 als $SecurityCode
=> de aangepaste mos6.txt hier als bijlage bij een bericht toevoegen.

Vraag 3: Kunt u de bijgesloten zip uitpakken
en
het uitgepakte info.php script in de map wsMos/ plaatsen?
Dan kunnen we zien welke onderdelen in uw PHP versie zitten.
Bij nieuwe releases worden nog al eens onderdelen, zoals GHD support, door de provider vergeten aan te zetten.

Wim
Bijlagen
(551 Bytes) 106 keer gedownload
#73594
Het "lege" plaatje is van uw link. De teksten ontbreken dus ik denk dat de opgegeven font-file niet wordt gevonden.

Het correcte plaatje van het mos6.php script (uit 2016 i.v.m. aangepaste mos-feed) werkend onder PHP Version 8.0.5 toont alle gegevens
Code: Selecteer alles
// hwa-mosgraphic.php script by Jacco Gebben - info@hetweerinruinen.nl
// aangepast door W van der Kuil op verzoek van Geert - weerstation Boskamp 2016-07-06 versie 6 dagen van Ron
// Version 2.00 - 17-Dec-2012 - initial release
$Version = "HWA-mosgraphic2.php Version 2.02a - original 06-Feb-2013 adapted 2016-06-20 new mos feed
Ik laad zelf niet op naar HWA, de gegevens zijn van Herent.

Wim
Bijlagen
mos6-probleem.jpeg
mos6-probleem.jpeg (52.52 KiB) 2782 keer bekeken
mos6.jpeg
mos6.jpeg (73.65 KiB) 2782 keer bekeken
#73595
hallo

ik had PHP versie 7.3, daarna 7.4

https://meteohoogeveen.nl/joomla3/wsMos/info.php

Dit is het script.
krijg het niet anders dan zo. digibeet he

# libxml_disable_entity_loader(false);
// hwa-mosgraphic.php script by Jacco Gebben - info@hetweerinruinen.nl
// aangepast door W van der Kuil op verzoek van Geert - weerstation Boskamp 2016-07-06 versie 6 dagen van Ron
// Version 2.00 - 17-Dec-2012 - initial release
$Version = "HWA-mosgraphic2.php Version 2.02a - original 06-Feb-2013 adapted 2016-06-20 new mos feed";


$StationID = ; // Voor xxx je ID invullen
$SecurityCode = ""; // Voor xxx je code invullen

$imagefolder = "images/"; // map waar de afbeeldingen staan
$imageextension = 'png'; // type afbeeldingen weersymbool

// ***** font grootte *****
$fontsizedagnaam = '38';
$fontsizeminmaxtemp = '18';
$fontsizewindkracht = '13';
$fontsizeneerslagh = '12';
$fontsizebft = '13';
$fontssamenwerking = '9';
$fonttekstwind = '13';
$fonttekstneerslag = '13';

// ***** kleurverloop achtergrond in rgb *****
$left_color = array(153, 153, 153);
$right_color = array(204, 204, 204);

$height = 350;
$width = 660; // ?= 58 + (5 dagen * 100)

$nr_day_parts = 13;

/***** Paden naar Font en anti-aliasing *****/
$font_file = 'HelveticaNeueLTStd-Bd.otf';
#$font_file = 'PFDinDisplayPro-Bold.ttf';

$anti_alias = 'on';

// Cachesettings etc. settings
$qarefetchSeconds = 3600; // How often it refresh the cache, 3600 recommended

$forecast_url= "https://www.hetweeractueel.nl/includes/ ... rce=met.no";

$xml_url = md5($forecast_url);
$cachefilename = "cache/$xml_url";

if (file_exists($cachefilename) and filemtime($cachefilename) + $qarefetchSeconds > time()) {
# $html = implode('', file($cachefilename));
# echo "<!-- cachefile gebruikt: file $cachefilename-->\n";
}
else { $html = file_get_contents($forecast_url);
$fp = file_put_contents($cachefilename, $html);
# echo "<!-- gebruik nieuw opgehaalde xml -->\n";
}

$verwachting = simplexml_load_file($cachefilename);
#echo '<pre>'; print_r($verwachting); exit;
#$aanmaaktijd = $verwachting['aanmaaktijd'];
#$datumgeheel = $verwachting['aanmaakdatum'];
#$plaatsnaam = $verwachting->Plaatsen->Plaats['naam'];
#$alias = $verwachting->Plaatsen->Plaats['alias'];

$parsedarray = array();
foreach($verwachting->Plaatsen->Plaats->Verwachtingen->Verwachting as $verwachting) {
$keymax = (string) $verwachting['dagnaam'].'max'.(string) $verwachting['dag'];
$keymin = (string) $verwachting['dagnaam'].'min'.(string) $verwachting['dag'];
switch ($verwachting['uur']) {
case 12:
case 18:
$parsedarray[$keymax]['dag'] = (string) $verwachting['dagnaam'];
$parsedarray[$keymax]['type'] = 'max';
if (!isset ($parsedarray[$keymax]['neerslaghoeveelheid'])){$parsedarray[$keymax]['neerslaghoeveelheid'] = 0;}
$parsedarray[$keymax]['neerslaghoeveelheid'] += (float) $verwachting->neerslaghoeveelheid;
if (!isset ($parsedarray[$keymax]['maximumtemperatuur']) || ((float) $verwachting->maximumtemperatuur > $parsedarray[$keymax]['maximumtemperatuur'])) {
$parsedarray[$keymax]['maximumtemperatuur'] = (float) $verwachting->maximumtemperatuur;
}
if (!isset($parsedarray[$keymax]['windsnelheid']) || ((float) $verwachting->windsnelheid > $parsedarray[$keymax]['windsnelheid'])) {
$parsedarray[$keymax]['windsnelheid'] = (float) $verwachting->windsnelheid;
}
$parsedarray[$keymax]['windrichting'] = (string) $verwachting->windrichting;
$parsedarray[$keymax]['weersymbool'] = (float) $verwachting->weersymbool;
$parsedarray[$keymax]['weersymbool_12u'] = (float) $verwachting->weersymbool_12u;
$parsedarray[$keymax]['weersomschrijving'] = (string) $verwachting->weersomschrijving;
$parsedarray[$keymax]['weersomschrijving_12u'] = (string) $verwachting->weersomschrijving_12u;
break;
case 0:
case 6:
$parsedarray[$keymin]['dag'] = (string) $verwachting['dagnaam'];
$parsedarray[$keymin]['type'] = 'min';
if (!isset ($parsedarray[$keymin]['neerslaghoeveelheid'])){$parsedarray[$keymin]['neerslaghoeveelheid'] = 0;}
$parsedarray[$keymin]['neerslaghoeveelheid'] += (float) $verwachting->neerslaghoeveelheid;
if (!isset($parsedarray[$keymin]['minimumtemperatuur']) || ((float) $verwachting->minimumtemperatuur < $parsedarray[$keymin]['minimumtemperatuur'])) {
$parsedarray[$keymin]['minimumtemperatuur'] = (float) $verwachting->minimumtemperatuur;
}
if (!isset($parsedarray[$keymin]['windsnelheid']) || ((float) $verwachting->windsnelheid > $parsedarray[$keymin]['windsnelheid'])) {
$parsedarray[$keymin]['windsnelheid'] = (float) $verwachting->windsnelheid;
}
$parsedarray[$keymin]['windrichting'] = (string) $verwachting->windrichting;
$parsedarray[$keymin]['weersymbool'] = (float) $verwachting->weersymbool;
$parsedarray[$keymin]['weersymbool_12u'] = (float) $verwachting->weersymbool_12u;
$parsedarray[$keymin]['weersomschrijving'] = (string) $verwachting->weersomschrijving;
$parsedarray[$keymin]['weersomschrijving_12u'] = (string) $verwachting->weersomschrijving_12u;
break;
} // eo switch
} // eo for each
$dagen = (array_keys($parsedarray));
#$howmany= count($parsedarray);
#echo '<pre>'; print_r($parsedarray); exit;
// aanmaakdatum formaat wijzigen
#$datumkop = substr($datumgeheel,6,2).".".substr($datumgeheel,4,2).".".substr($datumgeheel,0,4);
$count = 1;
$max = count($parsedarray);
if ($max > $nr_day_parts) {$max = $nr_day_parts;}
foreach ($dagen as &$val) {
$dagnaam[] = $parsedarray[$val]['dag'];
$weersymbool[] = $parsedarray[$val]['weersymbool'];
$weersymbool_12u[] = $parsedarray[$val]['weersymbool_12u'];
$weersomschrijving_12u[]= $parsedarray[$val]['weersomschrijving_12u'];
$windrichting[] = $parsedarray[$val]['windrichting'];
# $neerslagkans[] = ($parsedarray[$val][neerslagkans]);
$neerslaghoeveelheid[] = $parsedarray[$val]['neerslaghoeveelheid'];
$temp = 0;
if (isset ($parsedarray[$val]['maximumtemperatuur']) ) {$temp += $parsedarray[$val]['maximumtemperatuur'];}
if (isset ($parsedarray[$val]['minimumtemperatuur']) ) {$temp += $parsedarray[$val]['minimumtemperatuur'];}
$minmaxtemperatuur[] = $temp;
$windsnelheid[] = $parsedarray[$val]['windsnelheid'];
$count++;
if ($count > $max) {break;}
}
#echo '<pre>'; print_r($dagnaam); exit;
/*
array_shift($dagnaam);
array_shift($weersymbool);
array_shift($weersymbool_12u);
array_shift($weersomschrijving_12u);
array_shift($windrichting);
array_shift($neerslagkans);
array_shift($neerslaghoeveelheid);
array_shift($minmaxtemperatuur);
array_shift($windsnelheid);
*/
$dag_shift = false;
if ($dagnaam[0] <> $dagnaam[1]) {
$dag_shift = true; // print incomplete day
/* # remove incompleet day part
array_shift($dagnaam);
array_shift($weersymbool);
array_shift($weersymbool_12u);
array_shift($weersomschrijving_12u);
array_shift($windrichting);
array_shift($neerslagkans);
array_shift($neerslaghoeveelheid);
array_shift($minmaxtemperatuur);
array_shift($windsnelheid);
*/
}

// Weericonen $nr_day_parts

$stamp0 = imagecreatefrompng("$imagefolder$weersymbool_12u[0].$imageextension");
$stamp1 = imagecreatefrompng("$imagefolder$weersymbool_12u[1].$imageextension");
$stamp2 = imagecreatefrompng("$imagefolder$weersymbool_12u[2].$imageextension");
$stamp3 = imagecreatefrompng("$imagefolder$weersymbool_12u[3].$imageextension");
$stamp4 = imagecreatefrompng("$imagefolder$weersymbool_12u[4].$imageextension");
$stamp5 = imagecreatefrompng("$imagefolder$weersymbool_12u[5].$imageextension");
$stamp6 = imagecreatefrompng("$imagefolder$weersymbool_12u[6].$imageextension");
$stamp7 = imagecreatefrompng("$imagefolder$weersymbool_12u[7].$imageextension");
$stamp8 = imagecreatefrompng("$imagefolder$weersymbool_12u[8].$imageextension");
$stamp9 = imagecreatefrompng("$imagefolder$weersymbool_12u[9].$imageextension");
$stamp10 = imagecreatefrompng("$imagefolder$weersymbool_12u[10].$imageextension");
$stamp11 = imagecreatefrompng("$imagefolder$weersymbool_12u[11].$imageextension");

// Windiconen
$stampw0 = imagecreatefrompng("$imagefolder$windrichting[0].$imageextension");
$stampw1 = imagecreatefrompng("$imagefolder$windrichting[1].$imageextension");
$stampw2 = imagecreatefrompng("$imagefolder$windrichting[2].$imageextension");
$stampw3 = imagecreatefrompng("$imagefolder$windrichting[3].$imageextension");
$stampw4 = imagecreatefrompng("$imagefolder$windrichting[4].$imageextension");
$stampw5 = imagecreatefrompng("$imagefolder$windrichting[5].$imageextension");
$stampw6 = imagecreatefrompng("$imagefolder$windrichting[6].$imageextension");
$stampw7 = imagecreatefrompng("$imagefolder$windrichting[7].$imageextension");
$stampw8 = imagecreatefrompng("$imagefolder$windrichting[8].$imageextension");
$stampw9 = imagecreatefrompng("$imagefolder$windrichting[9].$imageextension");
$stampw10 = imagecreatefrompng("$imagefolder$windrichting[10].$imageextension");
$stampw11 = imagecreatefrompng("$imagefolder$windrichting[11].$imageextension");

// Create image
$im = imagecreatetruecolor($width, $height);
imagecolorgradient($im, 0, 0, $height, $width, $left_color, $right_color);

/***** Kleuren voor de tekst en andere elementen in rgb formaat, $im = de basisafbeelding *****/
$color1 = imagecolorallocate($im, 0, 0, 0); //wit
$color2 = imagecolorallocate($im, 87, 136, 212); // blauw MC
$color3 = imagecolorallocate($im, 0, 0, 0); // zwart
$colortempmaxtekst = imagecolorallocate($im, 0, 0, 0); // max temp tekst
$colortempmintekst = imagecolorallocate($im, 0, 0, 0); // min temp tekst
$colorneerslaghoevtekst = imagecolorallocate($im, 0, 0, 51); // neerslag in mm tekst
$colorneerslagkanstekst = imagecolorallocate($im, 83, 103, 120); // neerslagkans tekst
$colorwindkrachttekst = imagecolorallocate($im, 0, 0, 51); // windkracht in bft tekst
#$colorbalk1 = imagecolorallocate($im, 253, 194, 124); // bovenste helft plaatsnamenbalk
#$colorbalk2 = imagecolorallocate($im, 253, 156, 0); // onderste helft plaatsnaambalk
$colorbalkdagen = imagecolorallocate($im, 103, 151, 189); // lijn tussen dagen
$colorbalkdagentekst = imagecolorallocate($im, 5, 75, 129); // tekst dagen
$colornacht = $colorkolomlinks = imagecolorallocate($im, 102, 204, 255); // linkerhelft kolom (nacht)
$colordag = $colorkolomrechts = imagecolorallocate($im, 255, 84, 65); // rechterhelft kolom (dag)
if ($dag_shift == true) {
$colorkolomlinks = $colordag;
$colorkolomrechts = $colornacht;
}
// dagen tekenen
// imagerectangle($im, 19, 19, 99, 59, $color2);
// imagefilledrectangle($im, 20, 20, 98, 58, $colorbalkdagen);
// imagerectangle($im, 129, 19, 209, 59, $color2);
// imagefilledrectangle($im, 130, 20, 208, 58, $colorbalkdagen);
// imagerectangle($im, 239, 19, 319, 59, $color2);
// imagefilledrectangle($im, 240, 20, 318, 58, $colorbalkdagen);
// imagerectangle($im, 349, 19, 429, 59, $color2);
// imagefilledrectangle($im, 350, 20, 428, 58, $colorbalkdagen);
// imagerectangle($im, 459, 19, 539, 59, $color2);
// imagefilledrectangle($im, 460, 20, 538, 58, $colorbalkdagen);

// Temperatuur vakjes tekenen
imagefilledrectangle ($im, 20, 105, 58, 140, $colorkolomlinks);
imagefilledrectangle ($im, 60, 105, 98, 140, $colorkolomrechts);
imagefilledrectangle ($im, 130, 105, 168, 140, $colorkolomlinks);
imagefilledrectangle ($im, 170, 105, 208, 140, $colorkolomrechts);
imagefilledrectangle ($im, 240, 105, 278, 140, $colorkolomlinks);
imagefilledrectangle ($im, 280, 105, 318, 140, $colorkolomrechts);
imagefilledrectangle ($im, 350, 105, 388, 140, $colorkolomlinks);
imagefilledrectangle ($im, 390, 105, 428, 140, $colorkolomrechts);
imagefilledrectangle ($im, 460, 105, 498, 140, $colorkolomlinks);
imagefilledrectangle ($im, 500, 105, 538, 140, $colorkolomrechts);
imagefilledrectangle ($im, 570, 105, 608, 140, $colorkolomlinks);
imagefilledrectangle ($im, 610, 105, 648, 140, $colorkolomrechts);


#imagerectangle ($im, 4, 32, 5, 305, $colorbalkdagen);
imagerectangle ($im, 114, 32, 115, 305, $colorbalkdagen);
imagerectangle ($im, 224, 32, 225, 305, $colorbalkdagen);
imagerectangle ($im, 334, 32, 335, 305, $colorbalkdagen);
imagerectangle ($im, 444, 32, 445, 305, $colorbalkdagen);
imagerectangle ($im, 554, 32, 555, 305, $colorbalkdagen);

// horizontale balk tekenen
//imagefilledrectangle($im, 0, 59, 599, 75, $colorbalk1);
//imagefilledrectangle($im, 0, 76, 599, 90, $colorbalk2);

// Breedte en hoogte van de weericonen en windrichting bepalen
$sx0 = imagesx($stamp0);
$sy0 = imagesy($stamp0);
$wsx0 = imagesx($stampw0);
$wsy0 = imagesy($stampw0);

// kopie van weericonen plaatsen
// en hoogte en breedte berekenen
imagecopyresized($im, $stamp0, 15, 55, 0, 0, 50, 50, $sx0, $sy0);
imagecopyresized($im, $stamp1, 54, 55, 0, 0, 50, 50, $sx0, $sy0);
imagecopyresized($im, $stamp2, 125, 55, 0, 0, 50, 50, $sx0, $sy0);
imagecopyresized($im, $stamp3, 164, 55, 0, 0, 50, 50, $sx0, $sy0);
imagecopyresized($im, $stamp4, 235, 55, 0, 0, 50, 50, $sx0, $sy0);
imagecopyresized($im, $stamp5, 274, 55, 0, 0, 50, 50, $sx0, $sy0);
imagecopyresized($im, $stamp6, 345, 55, 0, 0, 50, 50, $sx0, $sy0);
imagecopyresized($im, $stamp7, 384, 55, 0, 0, 50, 50, $sx0, $sy0);
imagecopyresized($im, $stamp8, 455, 55, 0, 0, 50, 50, $sx0, $sy0);
imagecopyresized($im, $stamp9, 495, 55, 0, 0, 50, 50, $sx0, $sy0);
imagecopyresized($im, $stamp10, 565, 55, 0, 0, 50, 50, $sx0, $sy0);
imagecopyresized($im, $stamp11, 600, 55, 0, 0, 50, 50, $sx0, $sy0);

// kopie van windrichting iconen plaatsen
imagecopy($im, $stampw0, 25, 210, 0, 0, $wsx0, $wsy0);
imagecopy($im, $stampw1, 64, 210, 0, 0, $wsx0, $wsy0);
imagecopy($im, $stampw2, 135, 210, 0, 0, $wsx0, $wsy0);
imagecopy($im, $stampw3, 174, 210, 0, 0, $wsx0, $wsy0);
imagecopy($im, $stampw4, 245, 210, 0, 0, $wsx0, $wsy0);
imagecopy($im, $stampw5, 284, 210, 0, 0, $wsx0, $wsy0);
imagecopy($im, $stampw6, 355, 210, 0, 0, $wsx0, $wsy0);
imagecopy($im, $stampw7, 394, 210, 0, 0, $wsx0, $wsy0);
imagecopy($im, $stampw8, 465, 210, 0, 0, $wsx0, $wsy0);
imagecopy($im, $stampw9, 504, 210, 0, 0, $wsx0, $wsy0);
imagecopy($im, $stampw10, 575, 210, 0, 0, $wsx0, $wsy0);
imagecopy($im, $stampw11, 614, 210, 0, 0, $wsx0, $wsy0);

// tekst plaatsen op afbeelding
// imagettftext is links uitgelijnd, imagecentredtext gecentreerd

#ImageTTFText ($im, 14, 0, 15, 25, $color1, "$font_file","Vooruitzichten voor $plaatsnaam");

//ImageTTFText ($im, 11, 0, 6, 75, $color1, "$font_file","$plaatsnaam");
//ImageTTFText ($im, $fontssamenwerking, 0, 232, 386, $color3, "$font_file","Samenwerking Meteoconsult / Hetweeractueel");
//ImageTTFText ($im, $fontssamenwerking, 0, 270, 385, $color1, "$font_file","Samenwerking Meteoconsult / Hetweeractueel");

//ImageTTFText ($im, 8, 0, 5, 40, $color2, "$font_file","Opgesteld:");
//ImageTTFText ($im, 8, 0, 5, 385, $color2, "$font_file","$datumkop $aanmaaktijd");

imagecenteredtext ( 60, 50, strtolower(substr("$dagnaam[0]",0,2)), 5, $fontsizedagnaam, $colorbalkdagentekst, 0);
imagecenteredtext ( 170, 50, strtolower(substr("$dagnaam[2]",0,2)), 5, $fontsizedagnaam, $colorbalkdagentekst, 0);
imagecenteredtext ( 280, 50, strtolower(substr("$dagnaam[4]",0,2)), 5, $fontsizedagnaam, $colorbalkdagentekst, 0);
imagecenteredtext ( 385, 50, strtolower(substr("$dagnaam[6]",0,2)), 5, $fontsizedagnaam, $colorbalkdagentekst, 0);
imagecenteredtext ( 495, 50, strtolower(substr("$dagnaam[8]",0,2)), 5, $fontsizedagnaam, $colorbalkdagentekst, 0);
imagecenteredtext ( 595, 50, strtolower(substr("$dagnaam[10]",0,2)), 5, $fontsizedagnaam, $colorbalkdagentekst, 0);

imagecenteredtext ( 38, 130, "$minmaxtemperatuur[0]", 5, $fontsizeminmaxtemp, $colortempmintekst, 0);
imagecenteredtext ( 77, 130, "$minmaxtemperatuur[1]", 5, $fontsizeminmaxtemp, $colortempmaxtekst, 0);
imagecenteredtext ( 148, 130, "$minmaxtemperatuur[2]", 5, $fontsizeminmaxtemp, $colortempmintekst, 0);
imagecenteredtext ( 187, 130, "$minmaxtemperatuur[3]", 5, $fontsizeminmaxtemp, $colortempmaxtekst, 0);
imagecenteredtext ( 258, 130, "$minmaxtemperatuur[4]", 5, $fontsizeminmaxtemp, $colortempmintekst, 0);
imagecenteredtext ( 297, 130, "$minmaxtemperatuur[5]", 5, $fontsizeminmaxtemp, $colortempmaxtekst, 0);
imagecenteredtext ( 368, 130, "$minmaxtemperatuur[6]", 5, $fontsizeminmaxtemp, $colortempmintekst, 0);
imagecenteredtext ( 407, 130, "$minmaxtemperatuur[7]", 5, $fontsizeminmaxtemp, $colortempmaxtekst, 0);
imagecenteredtext ( 478, 130, "$minmaxtemperatuur[8]", 5, $fontsizeminmaxtemp, $colortempmintekst, 0);
imagecenteredtext ( 517, 130, "$minmaxtemperatuur[9]", 5, $fontsizeminmaxtemp, $colortempmaxtekst, 0);
imagecenteredtext ( 588, 130, "$minmaxtemperatuur[10]", 5, $fontsizeminmaxtemp, $colortempmaxtekst, 0);
imagecenteredtext ( 627, 130, "$minmaxtemperatuur[11]", 5, $fontsizeminmaxtemp, $colortempmaxtekst, 0);

imagecenteredtext ( 60, 175, "wind in bft", 5, $fonttekstwind, $color1, 0);
imagecenteredtext ( 170, 175, "wind in bft", 5, $fonttekstwind, $color1, 0);
imagecenteredtext ( 280, 175, "wind in bft", 5, $fonttekstwind, $color1, 0);
imagecenteredtext ( 390, 175, "wind in bft", 5, $fonttekstwind, $color1, 0);
imagecenteredtext ( 500, 175, "wind in bft", 5, $fonttekstwind, $color1, 0);
imagecenteredtext ( 610, 175, "wind in bft", 5, $fonttekstwind, $color1, 0);

imagecenteredtext ( 60, 260, "neerslag", 5, $fonttekstneerslag, $color1, 0);
imagecenteredtext ( 170, 260, "neerslag", 5, $fonttekstneerslag, $color1, 0);
imagecenteredtext ( 280, 260, "neerslag", 5, $fonttekstneerslag, $color1, 0);
imagecenteredtext ( 390, 260, "neerslag", 5, $fonttekstneerslag, $color1, 0);
imagecenteredtext ( 500, 260, "neerslag", 5, $fonttekstneerslag, $color1, 0);
imagecenteredtext ( 610, 260, "neerslag", 5, $fonttekstneerslag, $color1, 0);

/*
imagecenteredtext ( 40, 330, "$neerslagkans[0]%", 5, $fontsizeneerslagk, $colorneerslagkanstekst, 0);
imagecenteredtext ( 79, 330, "$neerslagkans[1]%", 5, $fontsizeneerslagk, $colorneerslagkanstekst, 0);
imagecenteredtext ( 150, 330, "$neerslagkans[2]%", 5, $fontsizeneerslagk, $colorneerslagkanstekst, 0);
imagecenteredtext ( 189, 330, "$neerslagkans[3]%", 5, $fontsizeneerslagk, $colorneerslagkanstekst, 0);
imagecenteredtext ( 260, 330, "$neerslagkans[4]%", 5, $fontsizeneerslagk, $colorneerslagkanstekst, 0);
imagecenteredtext ( 299, 330, "$neerslagkans[5]%", 5, $fontsizeneerslagk, $colorneerslagkanstekst, 0);
imagecenteredtext ( 370, 330, "$neerslagkans[6]%", 5, $fontsizeneerslagk, $colorneerslagkanstekst, 0);
imagecenteredtext ( 409, 330, "$neerslagkans[7]%", 5, $fontsizeneerslagk, $colorneerslagkanstekst, 0);
imagecenteredtext ( 480, 330, "$neerslagkans[8]%", 5, $fontsizeneerslagk, $colorneerslagkanstekst, 0);
imagecenteredtext ( 519, 330, "$neerslagkans[9]%", 5, $fontsizeneerslagk, $colorneerslagkanstekst, 0);
*/
imagecenteredtext ( 40, 285, "$neerslaghoeveelheid[0]", 5, $fontsizeneerslagh, $colorneerslaghoevtekst, 0);
imagecenteredtext ( 40, 299, "mm", 5, $fontsizeneerslagh, $colorneerslaghoevtekst, 0);
imagecenteredtext ( 79, 285, "$neerslaghoeveelheid[1]", 5, $fontsizeneerslagh, $colorneerslaghoevtekst, 0);
imagecenteredtext ( 79, 299, "mm", 5, $fontsizeneerslagh, $colorneerslaghoevtekst, 0);
imagecenteredtext ( 150, 285, "$neerslaghoeveelheid[2]", 5, $fontsizeneerslagh, $colorneerslaghoevtekst, 0);
imagecenteredtext ( 150, 299, "mm", 5, $fontsizeneerslagh, $colorneerslaghoevtekst, 0);
imagecenteredtext ( 189, 285, "$neerslaghoeveelheid[3]", 5, $fontsizeneerslagh, $colorneerslaghoevtekst, 0);
imagecenteredtext ( 189, 299, "mm", 5, $fontsizeneerslagh, $colorneerslaghoevtekst, 0);
imagecenteredtext ( 260, 285, "$neerslaghoeveelheid[4]", 5, $fontsizeneerslagh, $colorneerslaghoevtekst, 0);
imagecenteredtext ( 260, 299, "mm", 5, $fontsizeneerslagh, $colorneerslaghoevtekst, 0);
imagecenteredtext ( 299, 285, "$neerslaghoeveelheid[5]", 5, $fontsizeneerslagh, $colorneerslaghoevtekst, 0);
imagecenteredtext ( 299, 299, "mm", 5, $fontsizeneerslagh, $colorneerslaghoevtekst, 0);
imagecenteredtext ( 370, 285, "$neerslaghoeveelheid[6]", 5, $fontsizeneerslagh, $colorneerslaghoevtekst, 0);
imagecenteredtext ( 370, 299, "mm", 5, $fontsizeneerslagh, $colorneerslaghoevtekst, 0);
imagecenteredtext ( 409, 285, "$neerslaghoeveelheid[7]", 5, $fontsizeneerslagh, $colorneerslaghoevtekst, 0);
imagecenteredtext ( 409, 299, "mm", 5, $fontsizeneerslagh, $colorneerslaghoevtekst, 0);
imagecenteredtext ( 480, 285, "$neerslaghoeveelheid[8]", 5, $fontsizeneerslagh, $colorneerslaghoevtekst, 0);
imagecenteredtext ( 480, 299, "mm", 5, $fontsizeneerslagh, $colorneerslaghoevtekst, 0);
imagecenteredtext ( 519, 285, "$neerslaghoeveelheid[9]", 5, $fontsizeneerslagh, $colorneerslaghoevtekst, 0);
imagecenteredtext ( 519, 299, "mm", 5, $fontsizeneerslagh, $colorneerslaghoevtekst, 0);
imagecenteredtext ( 590, 285, "$neerslaghoeveelheid[10]", 5, $fontsizeneerslagh, $colorneerslaghoevtekst, 0);
imagecenteredtext ( 590, 299, "mm", 5, $fontsizeneerslagh, $colorneerslaghoevtekst, 0);
imagecenteredtext ( 629, 285, "$neerslaghoeveelheid[11]", 5, $fontsizeneerslagh, $colorneerslaghoevtekst, 0);
imagecenteredtext ( 629, 299, "mm", 5, $fontsizeneerslagh, $colorneerslaghoevtekst, 0);

imagecenteredtext ( 40, 200, "$windsnelheid[0]", 5, $fontsizewindkracht, $colorwindkrachttekst, 0);
imagecenteredtext ( 79, 200, "$windsnelheid[1]", 5, $fontsizewindkracht, $colorwindkrachttekst, 0);
imagecenteredtext ( 150, 200, "$windsnelheid[2]", 5, $fontsizewindkracht, $colorwindkrachttekst, 0);
imagecenteredtext ( 189, 200, "$windsnelheid[3]", 5, $fontsizewindkracht, $colorwindkrachttekst, 0);
imagecenteredtext ( 260, 200, "$windsnelheid[4]", 5, $fontsizewindkracht, $colorwindkrachttekst, 0);
imagecenteredtext ( 299, 200, "$windsnelheid[5]", 5, $fontsizewindkracht, $colorwindkrachttekst, 0);
imagecenteredtext ( 370, 200, "$windsnelheid[6]", 5, $fontsizewindkracht, $colorwindkrachttekst, 0);
imagecenteredtext ( 409, 200, "$windsnelheid[7]", 5, $fontsizewindkracht, $colorwindkrachttekst, 0);
imagecenteredtext ( 480, 200, "$windsnelheid[8]", 5, $fontsizewindkracht, $colorwindkrachttekst, 0);
imagecenteredtext ( 519, 200, "$windsnelheid[9]", 5, $fontsizewindkracht, $colorwindkrachttekst, 0);
imagecenteredtext ( 590, 200, "$windsnelheid[10]", 5, $fontsizewindkracht, $colorwindkrachttekst, 0);
imagecenteredtext ( 629, 200, "$windsnelheid[11]", 5, $fontsizewindkracht, $colorwindkrachttekst, 0);


// Output and free memory
header('Content-type: image/png');
imagepng($im);
imagedestroy($im);

// imagecenteredtext() : text centering function for image creation
// centers on provided x, y coordinates
// you must pass all parameters even if you aren't using them.
// $x = x coordinate where the text will be centered
// $y = y coordinate where the text will be centered
// $text = the text to be written
// $size = font size for built-in GD fonts (1,2,3,4, or 5)
// $ttfsize = font size for ttf fonts. Use just like you would in a word processor
// $color = color as defined in the allocate colors section below
// $angle = for ttf fonts, determines the angle for the text.
function imagecenteredtext($x, $y, $text, $size, $ttfsize, $color, $angle) {
global $font_file, $im, $anti_alias ;
// if FreeType is not supported OR $font_file is set to none
// we'll use the GD default fonts
$gdinf = gd_info();
if (($gdinf["FreeType Support"] == 0) or ($font_file == "none")) {
// $x -= (imagefontwidth($size) * strlen($text)) / 2;
$y -= (imagefontheight($size)) / 2;
imagestring($im, $size, $x, $y - 3, $text, $color);
} // end if

// otherwise we'll use the truetype font defined in $font_file
else {
$box = imagettfbbox ($ttfsize, $angle, $font_file, $text);
$x -= ($box[2] - $box[0]) / 2;
$y -= ($box[3] - $box[1]) / 2;
if ($anti_alias == 'off'){
imagettftext ($im, $ttfsize, $angle, $x, $y, -$color, $font_file, $text);
} // end if
else {
imagettftext ($im, $ttfsize, $angle, $x, $y, $color, $font_file, $text);
} // end else
} // end else

} // end function imagecenteredtext

function imagecolorgradient($im, $x1, $y1, $height, $width,$left_color, $right_color) {
$color0=($left_color[0]-$right_color[0])/$height;
$color1=($left_color[1]-$right_color[1])/$height;
$color2=($left_color[2]-$right_color[2])/$height;
for ($i=0;$i<=$height;$i++) {
$red=$left_color[0]-floor($i*$color0);
$green=$left_color[1]-floor($i*$color1);
$blue=$left_color[2]-floor($i*$color2);
$col= imagecolorallocate($im, $red, $green, $blue);
imageline($im, $x1, $y1+$i, $x1+$width, $y1+$i, $col);
}
} // eof imagecolorgradient
#73596
Uw versie van PHP 7.4 lijkt een probleem te hebben met het lezen van de font-file.

Bijgevoegd script zal de foutboodschappen tonen.
Unzip en plaats het uitgepakte script test_it.php in de map wsMos/
https://meteohoogeveen.nl/joomla3/wsMos/test_it.php => toont de foutboodschappen.

Ik heb andere 7.4 versies getest en minstens 1 andere 7.4 versie geeft ook dit soort fouten
Code: Selecteer alles
Warning: imagettfbbox(): Could not find/open font in /home/sluispar/public_html/wsMos/mos6.php on line 408
U kunt "bewijzen" dat het een 7.4 probleem is, door regel 35 in mos6.php aan te passen van
Code: Selecteer alles
$font_file      = 'HelveticaNeueLTStd-Bd.otf';
naar
Code: Selecteer alles
$font_file      = 'none';   ##  'HelveticaNeueLTStd-Bd.otf';
Dan wordt het standaard GD-font gebruikt. Dat levert een compleet, maar wel erg lelijk plaatje.

Volgens mij moet u met de support afdeling van uw provider contact opnemen.
Verwijs ze ook naar deze discussie.
Het werkt met uw oude PHP 7.3 , met PHP 8.0.5 en 8.0.12
Maar niet met uw huidige PHP versie.
De support medewerker zal dan uw PHP-instellingen aanpassen.

Wim
Bijlagen
mos6-font.jpeg
mos6-font.jpeg (67.02 KiB) 2765 keer bekeken
#73598
Meteo Hoogeveen schreef: 15 nov 2021, 13:26 Dank je wel Wim,

ik ga er mee aan de slag.
ik heb de oude PHP-versie weer geactiveerd.

Met de versie 8.0 kreeg ik een foutmelding om mijn site te weer te geven.

Nogmaals bedankt.

Groet,

Bert
Ik heb een oplossing gevonden.

Pas de regel 35 aan van
Code: Selecteer alles
$font_file      = 'HelveticaNeueLTStd-Bd.otf';
naar
Code: Selecteer alles
$font_file      = './HelveticaNeueLTStd-Bd.otf';
Dan zal het wel werken.
Is een bekende fout, de GD code in PHP kan soms het pad waar het font staat niet vinden.
Door er ./ voor te zetten verwijs je direct naar de map waar het font in staat.

Wim