windows uptime script

Ebben a tutorialban a Windows futásidejének az előcsalásával fogunk foglalkozni.
Szükséges hozzávalók: egy PHP futtatására képes Windows-os webszerver.
Én Apache 2.0.49-et PHP 4.3.5 -el használok Windows XP rendszeren.

Mivel a PHP nem támogatja a futásidő lekérését közvetlenül, ezért egy kis C++ is lesz a tutorialban, de nem bonyolult az se :)

C++ rész

uptime.cpp:
#include <windows.h>
#include <stdio.h>
int main()
{
int time = 0;
time = GetTickCount();
printf("%i", time);
return(time);
}

A két #include sorral a fejlécfájlokat olvassuk be (ezekben vannak a fügvények…)
majd létrehozunk egy int (egész szám) típusú változót 0 értékkel. A GetTickCount() fügvénnyel olvassuk ki a windows futásidejét – e miatt kell a windows.h header fájl – és belepakoljuk a változónkba, majd kiírjuk – ezt a kimenetet fogja az exec() megkapni.

A progit lefordítva is megtaláljátok, gondolom nem mindenkinek van Visual C++ vagy egyébb alkalmas szoftvere a fordításhoz.

A PHP rész:
Az elején az exec() lefutattja az uptime.exe -t az elérési útvonalat természetesen írjuk át arra ahova tettük az exe -t. Érdemes kívülre tenni a www könyvtárból és akkor senki nem tudja letölteni. Az exec az utolsó sorral tér vissza amit eltárol az $uptime változóban – ezredmásodpercben. Az algoritmust ami által nap, óra, perc, másodperc alakot vesz fel a cucc, nem magyarázom (egyszerű szorzás, osztás kivonás :) )
Mostmár készen vannak a változók. Az egyszerűbb skinelhetőség érdekében template fájlt használok. Az str_replace sorok cserélik ki a megfelelő adatra a template elemeit.

Skinezés:
A template.php fájlt kell szerkeszteni. A !nap! !ora! !perc! !masodperc! fog lecserélődni a megfelelő számértékre. A template-t én dreamweaver-ben készítettem, majd a forrásán a " lecseréltem " -re és elé raktam az alábbi kódot (sort)

beszurandó sor

<?php $tpl="

sort a végére meg a php lezáró tagjét "; ?> és már kész is a template :) A " jeleket azért kell lecserélni, mert egyébként azthinné a php, hogy ott vége van a stringnek és elszállna parse errorral :/

A forrásfájlok letölthetők innen

Ezt egyébként meg lehet a progi nélkül is csinálni ha a PHP-ba a W32api be van töltve, de én úgy vagyok vele, hogy ne foglalja a memóriát :)

Szerző: BlackPrince

HOZZÁSZÓLOK A CIKKHEZ

Kérjük, írja be véleményét!
írja be ide nevét