Foreach/ librairie gd
Résolu
pontarose
-
pontarose Messages postés 150 Date d'inscription Statut Membre Dernière intervention -
pontarose Messages postés 150 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
je fais des schéma avec la librairie gd.
Mon problème est que ma boucle ne me génère pas ma deuxième clé (içi B); j'obtiens bien la première clé A écrit en gris mais impossible d'avoir B écris en dessous et en gris aussi. (Alors que si je fais
print("enzyme: <b>". $key ."</b><br>"); j'obtiens bien mes clés l'une en dessous de l'autre!!!!)
La valeur de $key ne change pas, elle reste toujours égale à la première clé, mais je ne comprend pas pourquoi
Peut-on m'aider
<?php
header("Content-type: image/png");
$x = 940;
$y = 120;
$im = imagecreatetruecolor ($x,$y) or die ("Impossible de crée un flux d'image GD");
$gris = imagecolorallocate ($im, 91, 91, 91 );
imagecolortransparent($im,$noir);
$titre_police = 3;
function endonucleases()
{
$enzymes = Array(
"A" => array(75,50,10,100),
"B" => array(75,100,10,100),
);
return $enzymes;
}
$o=endonucleases($enz);
$h=0;
foreach($o as $key => $value)
{
$h=$h+2;
imagestring ($im, $titre_police, $x-930, $y-102+$h, $key, $gris);
//le problème est que $key ne change pas de valeur
imagepng ($im);
imagedestroy($im); //détruit l'image, libérant ainsi de la mémoire
}
?>
je fais des schéma avec la librairie gd.
Mon problème est que ma boucle ne me génère pas ma deuxième clé (içi B); j'obtiens bien la première clé A écrit en gris mais impossible d'avoir B écris en dessous et en gris aussi. (Alors que si je fais
print("enzyme: <b>". $key ."</b><br>"); j'obtiens bien mes clés l'une en dessous de l'autre!!!!)
La valeur de $key ne change pas, elle reste toujours égale à la première clé, mais je ne comprend pas pourquoi
Peut-on m'aider
<?php
header("Content-type: image/png");
$x = 940;
$y = 120;
$im = imagecreatetruecolor ($x,$y) or die ("Impossible de crée un flux d'image GD");
$gris = imagecolorallocate ($im, 91, 91, 91 );
imagecolortransparent($im,$noir);
$titre_police = 3;
function endonucleases()
{
$enzymes = Array(
"A" => array(75,50,10,100),
"B" => array(75,100,10,100),
);
return $enzymes;
}
$o=endonucleases($enz);
$h=0;
foreach($o as $key => $value)
{
$h=$h+2;
imagestring ($im, $titre_police, $x-930, $y-102+$h, $key, $gris);
//le problème est que $key ne change pas de valeur
imagepng ($im);
imagedestroy($im); //détruit l'image, libérant ainsi de la mémoire
}
?>
A voir également:
- Foreach/ librairie gd
- Gd group prélèvement - Forum Consommation & Internet
- Librairie anspach ✓ - Forum Consommation & Internet
- Librairie valentine wtf ✓ - Forum Réseaux sociaux
- Commmande librairie anspach - Forum Consommation & Internet
- Attente d'une commande librairie Anspach - Forum Consommation & Internet
1 réponse
Bonjour
Tu appelles la fonction endonucleases avec un parametre, alors qu'elle est définie sans paramètre. Pas beau, mais ça n'est pas le problème
Beaucoup plus grave, tu fais ton imagepng et ton imagedestroy à l'intérieur de ta boucle. Donc quand tu viens traiter la clé "B" c'est déjà trop tard.
Il faudrait que tu fermes le foreach avant le imagepng, et que tu prennes l'habitude de tester les valeurs renvoyées par les fonctions, tu aurais vu toi-même l'erreur.
Tu appelles la fonction endonucleases avec un parametre, alors qu'elle est définie sans paramètre. Pas beau, mais ça n'est pas le problème
Beaucoup plus grave, tu fais ton imagepng et ton imagedestroy à l'intérieur de ta boucle. Donc quand tu viens traiter la clé "B" c'est déjà trop tard.
Il faudrait que tu fermes le foreach avant le imagepng, et que tu prennes l'habitude de tester les valeurs renvoyées par les fonctions, tu aurais vu toi-même l'erreur.
J'ai fait la correction suivante-> $o=endonucleases();
J'ai fait les modifications suivantes:
* fermer le foreach avant le imagepng
* $o=endonucleases();