Letöltésszámláló
2008.11.10. 21:14
Sziasztok nem régiben csináltam egy egyszerű letöltésszámlálót és szeretném megosztani veletek. Két függvényt fogok használni, leírom őket és majd részletesen elmagyarázom minden sorát, hogy mi mire jó. És a használatukat is.
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
|
function CounterWrite($path, $counters_path) //Ez a fv. fog majd fájlba írni
{
if(isset($_GET['file']))
{
if(file_exists($path.$_GET['file']))
{
$file = fopen($counters_path.$_GET['file'].'.txt', 'r+');
$count = fread($file,100);
fclose($file);
$file = fopen($counters_path.$_GET['file'].'.txt', 'w+');
$count = $count+1;
fwrite($file,$count);
fclose($file);
header('Location: '.$path.$_GET['file']);
}
}
}
function CounterRead($filename)//Ez a fv. fog majd fájlból kiolvasni a számot
{
$file = fopen('counters/'.$filename.'.txt','r+');
$count = fread($file,100);
fclose($file);
if($count == '')
{
$count = 0;
}
return $count;
}
|
Fájlbaíró függvény:
function CounterWrite($path, $counters_path) : Két paramétert használok: fájl elérési útját és a számláló .txt-nek az elérési útját.
if(isset($_GET['file'])) : Ez megnézi, hogy van-e a címsorban &file get metódus.
if(file_exists($path.$_GET['file'])) : Ez megnézi, hogy létezik-e a fájl, ha létezik akkor -
$file = fopen($counters_path.$_GET['file'].'.txt', 'r+'); - megnyitja az adott számláló fájlok elérési útján lévő txt-t.
$count = fread($file,100); - aztán kiolvassa belőle a számot
fclose($file); - bezárjuk a fájlt ez fontos!
header('Location: '.$path.$_GET['file']); : Ez elirányítja a fájlhoz, amit majd letölt a felhasználó.
Ezek után megnyitjuk a fájlt újra csak most írásra (W+) és a $count változó tartalmához hozzáadunk 1-et és beírjuk a fájlba: fwrite($file,$count); Utána újra lezárjuk a fájlt.
Ezt a fájlbaíró függvény-t az oldal valmelyik részébe egy <?php ?> jelek közé helyezed. így: <php CounterWrite('fájlok', 'számlálók') ?>
Olvasó függvény:
function CounterRead($filename) : Egy paraméteres. Csak a fájlnak a nevét és az kiterjesztését kell megadni.
$file = fopen('counters/'.$filename.'.txt','r+'); : ugyan az mint az írásnál, kiolvassuk a fájlt.
$count = fread($file,100); : tartalmát (számot) a $count változóba rakjuk.
fclose($file); : bezárjuk a fájlt.
if($count == '')
{
$count = 0;
} //ez csak ha véletlen üres lenne a fájl, akkor a $count értéke 0 lesz. És a felhasználónak nem a semmit fogja megjeleníteni, hanem a 0-át.
Méh néhány alap dologgal ki lehetne egészíteni a függvényt, de szerintem ez is elég.
Használata: <?=CounterRead('file.exe')?> A designtól függ hogy hova akarod, hogy megjelenjen.
Szerkesztette: pato