[RESOLU] Librairie couleurs

Eléphanteau du PHP | 34 Messages

15 janv. 2014, 18:51

Merci sirakawa pour ta feuille de style, par contre le souci est que, la température est récupéré dans un fichier texte grâce au code ci-dessous, comment je fait pour intégré a ton code.

Code : Tout sélectionner

<?php $num_ligne=1; $fichier='http://meteo-saintdenis01.perso.sfr.fr/data2.txt'; $time=''; $fp=fopen($fichier,'r'); $i=0; while (!feof($fp)) { $i++; $position=explode("*",fgets($fp,255)); if($i==$num_ligne) $time=$position[2]; //on m駑orise le temps de la ligne voulue } fclose($fp); print "".$time."°C"; ?>

Mammouth du PHP | 2278 Messages

15 janv. 2014, 21:20

Si je connaissais la tronche de $position, je saurais peut-être
Vanitas vanitatum et omnia vanitas
Mes derniers livres :
Sauvez les Mots chez BoD,
Tous les chemins mènent à ROM chez BoD

Eléphanteau du PHP | 34 Messages

15 janv. 2014, 22:14

C'est bon j'ai reussi pour ma précedente demande. :wink:

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 8758 Messages

15 janv. 2014, 22:50

Modération :
Si ta question est résolue, pense à l'indiquer pour que les futures personnes qui voudront consulter ce sujet sachent qu'il contient une solution.
Tu peux réaliser cette opération toi-même en cliquant sur le bouton vert "Mettre le sujet en tant que Résolu" situé en haut de la page à côté du titre du sujet.
Il en faut peu pour être heureux ......

Eléphanteau du PHP | 34 Messages

15 janv. 2014, 22:59

J'ai toujours pas réussi a faire comme je l'ai demandé avec le dégradé de couleur. Comme mon message de ce matin a 8h34 ?
Une solution moogli ?

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 8758 Messages

16 janv. 2014, 00:21

as tu testé ce code ? (issu de la doc)
require_once 'colorlib.php';
legende = adMidColors($colors, 10);
var_dump($legende);
echo '<table>';
echo '<tr>';
foreach ($legende as $color) {
    echo '<td style="width:10px; height:30px;  background:RGB(' . $color.')"></td>';
}
echo '</tr>';
echo '</table>';
Cela va te faire un tableau de 56 éléments (tu verras à l'affichage).
Modifie le second paramètre de la fonction adMidColors() pour modifier le nombre d'élément (si c'est 46 qu'il te faut c'est 8 qu'il te faut).

à partir de la c'est pas super complexe de trouver la règle de calcul qui va te permettre d'afficher l'index zéro pour la température la plus basse.

@+
Il en faut peu pour être heureux ......

Eléphanteau du PHP | 34 Messages

16 janv. 2014, 15:41

Ok merci voila ce que ca me donne avec le tableau en couleur du dégradé qui n'apparait pas là. Comment dois-je faire pour la suite ?

array(46) { [0]=> string(9) "198,9,120" [1]=> string(10) "180,13,131" [2]=> string(10) "162,17,142" [3]=> string(10) "143,20,154" [4]=> string(10) "125,24,165" [5]=> string(10) "107,28,176" [6]=> string(9) "89,32,187" [7]=> string(9) "70,35,199" [8]=> string(9) "52,39,210" [9]=> string(9) "34,43,221" [10]=> string(9) "41,66,222" [11]=> string(9) "49,88,223" [12]=> string(10) "56,111,225" [13]=> string(10) "64,134,226" [14]=> string(10) "71,156,227" [15]=> string(10) "79,179,228" [16]=> string(10) "86,202,230" [17]=> string(10) "94,224,231" [18]=> string(13) "101, 247, 232" [19]=> string(11) "118,248,206" [20]=> string(11) "135,249,180" [21]=> string(11) "152,250,155" [22]=> string(11) "169,251,129" [23]=> string(11) "187,251,103" [24]=> string(10) "204,252,77" [25]=> string(10) "221,253,52" [26]=> string(10) "238,254,26" [27]=> string(11) "255, 255, 0" [28]=> string(9) "255,227,0" [29]=> string(9) "255,198,0" [30]=> string(9) "255,170,0" [31]=> string(9) "255,142,0" [32]=> string(9) "255,113,0" [33]=> string(8) "255,85,0" [34]=> string(8) "255,57,0" [35]=> string(8) "255,28,0" [36]=> string(10) "255, 0 , 0" [37]=> string(7) "246,9,2" [38]=> string(8) "237,18,5" [39]=> string(8) "229,27,7" [40]=> string(8) "220,36,9" [41]=> string(9) "211,44,12" [42]=> string(9) "202,53,14" [43]=> string(9) "194,62,16" [44]=> string(9) "185,71,19" [45]=> string(11) "176, 80, 21" }

Eléphanteau du PHP | 34 Messages

16 janv. 2014, 16:30

Comment récuperer la couleur voulu en fonction de la température afficher ?

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 8758 Messages

16 janv. 2014, 17:15

à partir de la c'est pas super complexe de trouver la règle de calcul qui va te permettre d'afficher l'index zéro pour la température la plus b
c'est une addition ...

on résumé cela par un petit problème de math primaire / collège

j'ai une échelle de zéro à 45.
dessus je veux adapter que chacune de ses valeurs correspondent à une température allant de -15°C à +30°C.

sachant que le zéro de mon échelle correspond à la valeur à la valeur -15°C et que le 45 de mon échelle correspond à la valeur 30°C.
quel est la valeur de mon échelle pour zéro degrés ?

@+
Il en faut peu pour être heureux ......

Eléphanteau du PHP | 34 Messages

16 janv. 2014, 17:21

C'est 15.

Eléphanteau du PHP | 34 Messages

16 janv. 2014, 17:25

Et ensuite comment mettre la couleur dans mon encadré de la température sur ma carte ?

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 8758 Messages

16 janv. 2014, 22:05

echo $legende[15];

il faut que tu récupère la valeur de température avant l'affichage de la div bien sur ;)


@+
Il en faut peu pour être heureux ......

Eléphanteau du PHP | 34 Messages

17 janv. 2014, 15:32

Désolé moogli je n'arrive pas à faire fonctionner l' echo ?

Peut-tu m'aider a positionner le code dans le mien ?

Merci

Code : Tout sélectionner

<html> <head> <title>Tout JavaScript.com - Info Bulle DHTML</title> <link type="text/css" rel="stylesheet" href="div-tb.css"> <style type="text/css"> #stdenis2 { position:absolute; left:50px; top:50px; width:60px; height:20px; z-index:9992; border-top: 1px solid #000000; border-left: 1px solid #000000; border-right: 1px solid #000000; border-bottom: 1px solid #000000; -moz-border-radius:10px; -webkit-border-radius:10px; } </style> </head> <body> <div id="stdenis2" style="background-color: " align="center"> <?php // dessous le code qui récupere le température $num_ligne=1; $fichier='http://meteo-saintdenis01.perso.sfr.fr/data2.txt'; $time=''; $fp=fopen($fichier,'r'); $i=0; while (!feof($fp)) { $i++; $position=explode("*",fgets($fp,255)); if($i==$num_ligne) $time=$position[2]; //on mémorise le temps de la ligne voulue } fclose($fp); print "".$time."&#176;C";?> </body> </html>

Eléphanteau du PHP | 34 Messages

17 janv. 2014, 16:53

Bon j'ai réussi à mettre a faire fonctionner echo, ma div est bien colorer avec la fonction mais ne change pas quand je change la valeur de la température ?
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
  <title>Tout JavaScript.com - Info Bulle DHTML</title>
<link type="text/css" rel="stylesheet" href="div-tb.css">

<style type="text/css">

#stdenis2 {	position:absolute;	left:50px;	top:50px;	width:60px;	height:20px;	z-index:9992;
border-top: 1px solid #000000;
  border-left: 1px solid #000000;
  border-right: 1px solid #000000;
  border-bottom: 1px solid #000000;
  -moz-border-radius:10px;
  -webkit-border-radius:10px;
}

.Style44 {
	
	font-weight: bold;
	text-align: center;
	vertical-align: middle;
	text-indent: -5px;
}
</style>

</head>
<body>

<?php require_once "colorlib.php";

$colors = array(
"198,9,120",
"34,43,221",
"101, 247, 232",
"255, 255, 0",
"255, 0 , 0",
"176, 80, 21"
);

$legende = adMidColors($colors,10);
?>


<div id="stdenis2" class="Style44" style="background-color:rgb(<?php echo $legende[15]?>)">

<?php
// dessous le code qui récupere le température

$num_ligne=1;
$fichier='http://meteo-saintdenis01.perso.sfr.fr/data2.txt';
$time=''; 
$fp=fopen($fichier,'r'); 
$i=0; 

while (!feof($fp)) { 
$i++; 
$position=explode("*",fgets($fp,255)); 
if($i==$num_ligne) $time=$position[2]; //on mémorise le temps de la ligne voulue 
} 
fclose($fp); 
print "".$time."&#176;C";
?>




</body>
</html>

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 8758 Messages

17 janv. 2014, 21:54

ben te manque la récupération de la température ;)

et le copier coller des autres site c'est quand moyen hein ( <title>Tout JavaScript.com - Info Bulle DHTML</title>)

@+
Il en faut peu pour être heureux ......