Archív Inet.sk Pôvodný autor: Rasťo Turek
16. 11. 2003 o 00:00 9916x

Php v praxi – diel piaty: Tri tipy do Vašich stránok

Vítam Vás pri ďalšej časti seriálu php v praxi. Dnes si pozrieme tri malé skriptíky, ktoré Vám dúfam pomôžu a zároveň skrášlia a vylepšia Vaše stránky. Tieto tri skripty nájdete aj na konci zpakované do zipu a všetky budú v jednom súbore. Určite budete namietať, že som Vám v predošlom časti sľúbil týchto typov päť, ale ja už nemám proste o čom písať. Takže poďme pekne pomaličky a hneď sa pozrime na prvý z našich príkladov.
Php v praxi – diel piaty: Tri tipy do Vašich stránok

Za aký čas sa nám stránka vygenerovala?
Každý programátor sa snaží urýchliť načítavanie stránok pre svojich užívateľov. Ako však zistiť, za aký čas sa užívateľom stránky generujú? Úplne jednoducho.
Napíšeme si jednoduchý skriptík, ktorý nám túto informáciu zobrazí.

function getmicrotime()
{
list($usec, $sec) = explode(' ', microtime());
return ((float)$usec + (float)$sec);
}
$stime = getmicrotime();
$endtime = getmicrotime() - $stime;
$runtime = number_format($endtime, 5);

echo "Stránka sa načítala za $runtime sekúnd";
?>

Vytvoríme si jednoduchú funkciu ktorú nazveme getmicrotime(). Na zistenie času použijeme funkciu list(), táto funkcia sa používa na priradenie zoznamu premenných v jednej operácií. Ďalej použijeme funkciu explode() na oddelenie výpisu času pomocou funkcie microtime(). Nakoniec vrátime von z funkcie aktuálny čas. Ďalej si priradíme tri premenné a to $stime, $endtime a $runtime. Do prvej premennej si zavoláme funkciu getmicrotime() na zistenie aktuálneho času a tým určíme začiatok načítavania stránky. Do druhej premennej si zas zavoláme funkciu getmicrotime()no a od tejto funkcie odčítame predošlí hodnotu a tak dostaneme výsledok, ktorý nám určuje, za aký čas sa mu stránka vygenerovala. Keďže takýto výstup by nám nič nevravel, tak si ho upravíme pomocou funkcie number_format(), ktorá nám vráti číslo až ako jednu stotisícinu a to je čas, za ktorú sa stránka návštevníkovi vygenerovala.
Tento skript môžete používať všade tam, kde chcete užívateľom zobraziť, koľko trvá kým sa im Vaša stránka načíta. Ja tento skript však používam na to, aby som zistil, koľko to trvá v priemere a ukladám tieto výsledky do databázi a snažím sa ich stále zlepšovať.

Generátor náhodného reťazca pomocou MD5
Poďme si ukázať, ako si vygenerovať náhodný reťazec pomocou MD5. Najskôr si ukážeme samotný skript a potom si ho samozrejme aj vysvetlíme.

function na_hash()
{
$t=time();
$pid=GetMyPid();
$hash=substr($t,-6).$pid;
$hash=MD5(UniqID($hash));

return $hash;
}

echo na_hash();
?>

Vytvoríme si funkciu na_hash(), do ktorej si určíme zopár parametrov. Najskôr si do premennej $t určíme aktuálny čas. Potom si pomocou funkcie GetMyPid() si vypýtame od nášho php číslo aktuálneho procesu. Ďalej si orežeme výstup aktuálneho času na štyri miesta a pripojíme tieto štyri čísla k vrátenému číslu aktuálneho procesu. No a nakoniec si upravíme premennú $hash pomocou funkcií MD5() a UniqID(). Vystúpime z funkcie a nakoniec si zavoláme našu funkciu.
Pozor! Ak by ste chceli použiť tento generátor, tak si zmeňte napríklad orezanie času na 4 či dokonca 2 čísla, aby to nebolo úplne zhodné. Ďalej je ešte jeden problém a to ten, že takéto heslo, ktoré má 33 znakov je prakticky nezapamätateľné a tak odporúčam ho používať napríklad len na overenie emailu. Príklad: http://www.vasadomena.sk/over.php?email=info@lammer.sk$string=4fe3e09b1c32d9d332be3922f03d72b9
a takto to overiť trebárs v databázi. Nič zložité. Poďme však ďalej.

Na akom softe beží dopytovaný stroj?
Je to podľa môjho názoru aspoň zaujímavý skript. Je to úplne jednoduché a zvládnete to aj pomocou dokumentácie k php. Takže ako vždy, najskôr si script ukážeme a potom si ho vysvetlíme.

// prebrané z interval.cz zaručí zaregistrovanie všetkých premenných, ktoré sa predajú
foreach($_REQUEST as $ind => $val)
{
$val=addslashes($val);
eval("$".$ind."="".$val."";");
}

// vytvoríme si funkciu na overenie dopytovaného servera
function ServerOver($ServerURL)
{
// otvoríme si socket 80 na ktorom by mali bežať webové služby a zadáme meno servera
$filepointer = fsockopen($ServerURL,80,$errno,$errstr);
// ak sa nám nepodarí pripojiť k dopytovanému stroju, vypíšeme chybu
if(!$filepointer)
{
$Server="Error: $errstr ($errno)
n";
}
else
{
// zašleme hlavičku ako požiadavku o bežiacu službu na dopytovanom stroji
fputs($filepointer,"GET / HTTP/1.0nn");
// zistí, či je descriptor na konci súboru a ak nie, tak prevádza cyklus, kým nie je
while(!feof($filepointer))
{
// prečítame si, čo nám server vrátil a to v dĺžke 4096 znakov
$Server=fgets($filepointer,4096);
// vyhľadá vo vrátenom výsledku reťazec Server podľa zadaného kritéria
if (ereg("^Server:",$Server))
{
// najskôr oreže a potom nahradí hľadaný výraz prázdnym poľom
$Server=trim(ereg_replace("^Server:","",$Server));
// zastaví prevádzanie cyklu
break;
}
}
// uzavrieme spojenie
fclose($filepointer);
}
// vrátime údaje von z funkcie
return($Server);
}
 

// overovanie výstupu ak nie je prazdne tak ulož premennú
if ($ServerURL<>"")
 { 
   $Server=ServerOver($ServerURL);
}
// ak sú predané data správne, vypíšeme informácie o servery formátované ako zdrojový kód
 if ($Server<>"" and $ServerURL<>"")  

   echo("<PRE>Server $ServerURL beží na $Server.</PRE>"); 

  ?> 
  <FORM ACTION="<?php echo($PHP_SELF); ?>" METHOD="post"> 
  http:// 
 <INPUT title="Maximalne 100 znakov" TYPE="text" NAME="ServerURL" SIZE="40" MAXLENGTH="100"><br>
 <INPUT TYPE=hidden NAME="Server" VALUE=""> 
 <INPUT TYPE=submit VALUE="Over tento Server!">  
 <INPUT TYPE=reset VALUE="Reset"> 
 </FORM>


Najskôr je tu kúsoček kódu, ktorý som si požičal od jedného autora z interval.cz, ktorý nám zaregistruje všetky predávané premenné.
Náš kód začína vytvorením funkcie ServerOver() kde budeme predávať nami zadané url. Vo funkcii si otvoríme socket teda spojenie medzi dopytovaným a naším scriptom a prevedieme to pomocou funkcie fsockopen(),ktorá toto spojenie otvára a pri neúspechu nám vracia chybu. Overíme, či sme sa pripojili k dopytovanému serveru a overíme si, či toto spojenie prebehlo v poriadku a ak nie, tak prevezmeme chybu z našej funkcie pre otvorenie spojenia a vypíšeme ju do stránky. Ak je všetko ok ako má byť, zašleme požiadavku ako hlavičku serveru, aby nám vrátil, aká služba u neho beží. Zistíme, či je discriptor na konci súboru, alebo dát, ktoré nám server odosiela, teda či ich má prečítané. Ak to tak nie je, prevádza cyklus, kým to tak nie je a potom si ich my načítame k nám do premennej $Server. Ďalej v premennej $Server nájdeme časť reťazca a potom ho nahradíme a orežeme výstup. Nakoniec zastavíme prevádzanie cyklu a uzavrieme spojenie s dopytovaným serverom. Vrátime údaje von z funkcie a ďalej si overíme, či máme aj premennú $Server, kde ak nie je predaná aj hodnota $Server, tak ju nanovo zaregistrujeme zavolaním našej funkcie. Inak vypíšeme asi niečo podobné: Server localhost beží na Apache/2.0.43 (Win32) PHP/4.4.0-dev. Toto je koniec výpisu a ešte tu máme formulár, ktorý je skutočne jednoduchý. Aby sme si zaručili, že budeme stále zadávať do action=““ stále aktuálny script pomocou premennej $PHP_SELF, ktorá nám zaručí, že táto hodnota bude vždy naša URL. Inak tam máme štyri polia, ktoré nám predajú aktuálne hodnoty a reset a submit. Toť vsio.

Pokúsim sa na Vás opäť apelovať, i keď Vám už určite musím týmto liezť na nervy, ale ja už neviem, o čom by som Vám mal písať a tak neviem, či tento seriál radšej neukončiť a nezačať s niečím novým, ako napríklad so seriálom o vytvorení kvalitného fóra, či guestbooku. Prosím, skúste sa vyjadriť v diskusii a chcem Vás týmto srdečne pozvať do mnou pripravovaného fóra o všetkom možnom, ktoré by sa malo objaviť už do týždňa na www.lammer.sk.

O čom to bude nabudúce? Ani ja neviem, tak sa nechajte prekvapiť. Prajem Vám všetkým mnoho úspechov.



Rastislav Turek // www.break.sk

 

Z nášho blogu

Prečítajte si novinky, inšpirácie a dôležité informácie zo sveta webhostingu a technológií.

Novinky na Inet.sk (09 / 2026) Novinky
09. 09. 2026

Novinky na Inet.sk (09 / 2026)

Posledné mesiace sme v Inet.sk nevenovali len stabilite serverov, ale najmä počúvaniu vašich reálnych skúseností z každodennej praxe. Výs...

Čítať viac
Plánovaná údržba v datacentre (20.09.2026) Oznamy
07. 09. 2026

Plánovaná údržba v datacentre (20.09.2026)

Stabilita a nepretržitá dostupnosť vašich webov je pre nás kľúčová. Aby sme tento štandard nielen udržali, ale neustále zvyšovali, naši p...

Čítať viac
Aktualizujte ihneď svoj Wordpress - Kritická zraniteľnosť (CVE-2026-63030) Oznamy
31. 08. 2026

Aktualizujte ihneď svoj Wordpress - Kritická zraniteľnosť (CVE-2026-63030)

Bezpečnostný tím WordPressu vydal núdzovú bezpečnostnú záplatu pre kritickú chybu označenú ako CVE-2026-63030. Táto zraniteľnosť dosiahla...

Čítať viac

Nenašli ste, čo ste hľadali?

Nezúfajte, pripravili sme pre Vás jednoduché odpovede na najdôležitejšie otázky, ktoré od našich klientov dostávame.

Zistiť viac

Prečo si nás vybrať?

Našim klientom ponúkame až 30-dňovú záruku vrátenia peňazí.


Slovenská
firma

Nepatríme pod žiadnu nadnárodnú spoločnosť, sme malá rodinná firma.


Dlhoročné
skúsenosti

Na slovenskom trhu pôsobíme už viac ako 15 rokov.


Zákaznícka
podpora

Zakladáme si na individuálnom prístupe a férovosti. Vždy Vám radi pomôžeme.


Bez
obmedzení

Neobmedzujeme počet databáz, emailov, ftp a ani prenos dát.


Partnerský
program

Stať sa naším partnerom je tak ľahké a výhodné. Môžete sa ním stať aj Vy.


Spokojní
zákazníci

Naši zákazníci sú ako naša rodina, preto nám verí už viac ako 1000 klientov.


Výborný pomer
cena / výkon

Ponúkame kvalitné a stabilné služby za rozumnú cenu.


Maximálna
bezpečnosť

Chránime Vás pred útokmi i SPAMom. U nás sú Vaše dáta v bezpečí.

Spokojní zákazníci

Pozrite sa, čo o nás povedali naši klienti. Neváhajte a pridajte sa k nám ešte dnes.

"Mal som možnosť vyskúšať rôzne webhostingy, ale nakoniec som sa rozhodol všetky moje stránky zveriť Inet.sk. Webhosting zvláda jednoduché, ale aj veľmi náročné stránky a magazíny. Podporuje najnovšie technológie a má veľmi prehľadnú a jednoduchú správu domén. Komunikácia s technickou podporou Inet.sk je vynikajúca a za mňa môžem túto firmu iba doporučiť."

Richard Horný
Final Vision, s. r. o.

"Mám u Inet.sk zaparkovanú jednu doménu a mám pocit, že tam zaparkujem aj všetky ostatné domény, ktoré mám, pretože po dlhoročných skúsenostiach s rôznymi inými firmami, mi Vaše služby vyhovujú zatiaľ najviac. Odporúčam kvôli dobrej konektivite a primeranej cene + rýchly support."

Ladislav Kéry
vypnutieimobilizera.sk

"Po rokoch skúšania dodávateľov na poli webhostingových služieb sme našli svojho spoľahlivého a stabilného partnera tu. Stabilita, ochota, znalosť, dobrá cena a rýchle vyriešenie prípadných problémov - to je pre nás Inet.sk."

Jaroslav Mráz
Allycom, s.r.o.

"Máme u Vás doménu a hosting. So službami sme nadmieru spokojní. Z Vašej strany máme pozitívne skúsenosti ako sú: rýchle jednanie, znalosť v problematike, ochota pomôcť, stabilita, zavádzanie noviniek, ak ich klient vyžaduje a dobrá cena. Za nás môžeme Inet.sk len odporučiť. Ďakujeme."

Mgr. Zuzana Valovičová
BL servis, s.r.o.

Auto 100
Bystricoviny
eCall Slovakia
Filip Jančík
Frost
Merkury Broker
Mi:Su Design
Mesto Nitra
Pro Clienta
Schneider Lekáreň
Vego Marketing
Mesto Zlaté Moravce

Všetky ceny sú uvádzané bez DPH
© 2006 - 2026, Inet.sk, s. r. o., Všetky práva vyhradené

Stránka od VlastnaStranka.sk
Pôvodný návrh dizajnu od Mi:Su Design

Na našej stránke používame "cookies". Vďaka nim sledujeme návštevnosť, prispôsobujeme reklamu a používateľské nastavenia, čo zlepšuje Váš zážitok z našej stránky. Súhlasíte s ich spracovaním?
Vlastné nastavenia cookies