| Autor | Zpráva | ||
|---|---|---|---|
| svast Profil |
#1 · Zasláno: 7. 3. 2011, 19:08:03
Zdravím, potřeboval bych poradit jestli jde vložit z jednoho souboru proměnnou do druhého. Konkrétně jde o graf, který by měl zobrazit výsledné procenta jednotlivých příspěvků ve tvaru obrázku <img src=graf.php> v souboru index.php. V tomto případě určuje proměnnou náhodné číslo a já bych potřeboval nahradit tohle náhodné číslo proměnnou, která je právě v souboru index.php. Dík
graf.php
$cislo = rand(1, 100);
$obrazek = imagecreate(80,2);
$pozadi = imagecolorallocate($obrazek,150,180,180);
$deset = imagecolorallocate($obrazek,238,23,0);
$dvacet = imagecolorallocate($obrazek,238,47,0);
...
$devadesat = imagecolorallocate($obrazek,47,214,0);
$sto = imagecolorallocate($obrazek,0,238,0);
imagefilledrectangle($obrazek,0,0,100,2,$pozadi);
if ($cislo<11) {
imagefilledrectangle($obrazek,0,0,8,2,$deset);
}
elseif ($cislo>10 && $cislo<21) {
imagefilledrectangle($obrazek,0,0,16,2,$dvacet);
}
...
elseif ($cislo>80 && $cislo<91) {
imagefilledrectangle($obrazek,0,0,72,2,$devadesat);
}
else {
imagefilledrectangle($obrazek,0,0,80,2,$sto);
}
header("Content-Type: image/jpeg");
imagejpeg($obrazek);
imagedestroy($obrazek);
|
||
| Jozin Profil * |
#2 · Zasláno: 7. 3. 2011, 21:49:18
Ahoj,
no ono to není přesně, jak to píšeš, ale tvůj soubor graf.php bych předělal na funkci, kde $cislo dáváš jako parametr např.: makeGraph($cislo); v index.php by pak bylo něco ve stylu: <?php include_once("graf.php"); makeGraph(10); ?> v tvém řešení, by to bylo tak, že by si smazal z graf.php řádek s $cislo = rand(1, 100); a v indexu by bylo: <?php $cislo = 10; include("graf.php"); ?> to druhé řešení má problém, kdekoli to chceš použít, musíš zadat hodnotu $cislo a pak includovat soubor, protože se to okamžitě provede. První řešení je lepší v tom, že na začátku includuješ soubor, ve kterém máš tu funkci, aby se nedeklarovala 2x, tak použiješ once a kdykoli to potřebuješ, zavoláš funkci s parametrem toho čísla. Doufám, že to si hledal. Čauko, Jozin. |
||
| Tori Profil |
#3 · Zasláno: 7. 3. 2011, 22:04:25 · Upravil/a: Tori
svast:
Předávejte tu hodnotu jako parametr v URL. Nevím, jak máte udělaný index.php, asi by tam bylo něco jako: echo 'Číslo je: '. $cislo; echo "<img src='graf.php?cislo=$cislo'>"; // graf.php $cislo = abs(intval($_GET['cislo'])); edit: Oprava, vyhozeno zbytečné použití rand(). |
||
| Jozin Profil * |
#4 · Zasláno: 8. 3. 2011, 09:23:05
Omlouvám se, nekoukl jsem na zdroják. Samozřejmě moje řešení by tedy nefungovalo kvůli příkazu header. Jinak jsem si to zkusil napsat a trošku jsem ti to zjednodušil.
// graf.php
header("Content-Type: image/jpeg");
$_GET['num'] = (int) $_GET['num']; //zajištění, že vstup je číslo, pokud ne, je vstup nula
$w = 80; //šířka obrázku
$h = 2; //výška obrázku
$num = ceil($_GET['num']/10)*10; //číslo zaokrouhlíme na desítky
$img = imagecreate($w, $h);
$bg = imagecolorallocate($img, 150, 180, 180);
$active = imagecolorallocate($img, 255-(2.55*$num), 255-(2.55*(100-$num)), 0); //přebarvuje se podle $num
imagefilledrectangle($img, 0, 0, 100, $h, $bg);
imagefilledrectangle($img, 0, 0, $num, $h, $active);
imagejpeg($img);
imagedestroy($img);
//index.php
$num = 64;
echo "<img src=\"graf.php?num={$num}\">";
|
||
| svast Profil |
#5 · Zasláno: 8. 3. 2011, 18:56:31
Tori:
Díky za ochotu, řešil jsem to několik dní, ale na to bych teda nepřišel. Už to funguje. Jozin: Super, já jsem původně tohle téma zařadil do fóra "Problémy v začátcích", ale bylo přesunuto sem, tak bych jen upozornil, že jsem začátečník a jak vidím mám se co učit. Hlavně to zjednoduššování a práce s proměnnýma je skvělá. Každopádně jsem tam sám měl chybičku, tak bych to jen trochu doladil: V pozadí jsem špatně zadal šířku, takže snad takto: imagefilledrectangle($img, 0, 0, $w, $h, $bg); a číslo bych nezaokrouhloval na desítky, ale upravil podle šířky obrázku, tzn. 100% = 80, tedy: $num = $_GET['num']/10*8; Každopádně moc díky za pomoc. |
||
|
Časová prodleva: 15 let
|
|||
0