m e g o s z t á s
b l o g
2012.01.22 17:37

A Hamachi egy központi vezérlésű freeware Virtuális magánhálózati (VPN) kliens, amely képes két NAT-olt számítógép között virtuális magánhálózatot létrehozni, miközben nem kell a hálózati útválasztóban más beállításokat eszközölni. Jelenleg Microsoft Windows, Mac OS X és Linux rendszerekre érhető el verziója. 2006. augusztus 8-án a LogMeIn felvásárolta a Hamachit. Két verziója létezik, a Free és a Premium. A program eredetileg angol nyelvű, de van hozzá magyar fordítás. (Forrás: wikipedia.org)

. . . . . . . . . . . . . . . . . .
2011.08.22 10:16

Ebben a rövid posztban szeretném bemutatni az általam használt két felhő alapú adattárolási megoldást: Dropbox és AsusWebStorage.

. . . . . . . . . . . . . . . . . .
2011.05.22 21:50

Az elmúlt pár napban akadtam egy külföldi weblapon arra a lehetőségre, hogy Androidos telefonokon, táblagépeken, stb. lehetőség van PHP-ban írt programok futtatására is.

b a n n e r
Ajánlom az iuste.biz - Tisztességes vállalkozás mozgalmat

Autómúlt.hu a valós kilóméterekért


A szerver beállítása után kezdjünk ismerkedni a nyelv alapjaival. Kezdésként végig kell néznünk a legfontosabb parancsokat, szerkezeti egységeket, változótípusokat.

1. Változók és állandók

Az állandó (konstans), mint a neve is mutatja csak egyszer kaphat értéket a program futása során, onnantól fogva bárhol elérhető, és új értéket nem tud felvenni. A változó értéke a program futása során tetszőleges alkalommal változtathat.

Minden változót a $ jellel kezdünk (pl. $valtozo="béka"; echo $valtozo;).
A konstansoknak nincs prefixük (pl. define("konstans","123456"); echo konstans;).

Ha a nyelv kikényszeríti a típushoz tartózó szabályok végrehajtását (ez általában a típuskonverziók végrehajtását jelenti, lehetőleg információ vesztés nélkül), akkor a nyelv erősen típusos, ellenkező esetben gyengén típusos. A PHP egy gyengén típusos nyelv. A változókat nem kell előzetesen deklarálni (létrehozni, és megmondani a leendő típusát), és egyazon változó felvehet tetszőleges típusú értéket. A típuskonverzió sem igényel (minden esetben) külön eljárást. 

$a=12;
$b=$a." lepke száll a réten.";

A PHP rendszer az alábbi alaptípusokat támogatja:

- egész --> $a = -455;
- valós --> $b = 98.56;
- karakterlánc --> $c = "alma";

A szöveges változók lehetnek egy vagy több karakter hosszúak. A szöveges kifejezéseknél két szöveges kifejezés összefűzhető a "." (pont) operátorral:

$b = "fa";
$c = "alma" . $b ; // almafa

A változók a skalár érték mellett tömb típusúak is lehetnek. A tömb kezelés egyedi vonása, hogy tömb létrehozása az elemeinek a megadásával történik, nem előzetes helyfoglalással.

A tömbelemek indexe az egész típusú értékek mellett lehet asszociatív, mikor egy szöveges kifejezés adja meg az index értékeket:

$b[1] = 3;
$b[2] = "lepke";
$b["alma"] = 4;

Többdimenziós tömbök esetében a C szintaktikát követve minden dimenziónál külön szögletes zárójelben adjuk meg az indexértéket:

$a[1][2] = 3;

A változókat, mint a példákból is láthattuk, nem kell előre definiálni, s típusukat ezért az értékadás határozza meg. Azonban a PHP figyelmeztetést küldd, ha egy olyan változót próbálunk használni, aminek előzetesen még nem adtunk értéket.

$a=1;
$c=$b+$a; // ekkor figyelmeztet, hogy nem ismeri $b-t

Ellenőrizhetjük, hogy az adott változót használtuk-e már:

$a=1;
$b=2;
if (isset($c)) $d=$c+$b+$a; // az isset-tel megvizsgáltuk, hogy létezik-e $c, ha létezik, használjuk
else $d=$b+$a; // ha nem létezik, nem használjuk

Egyazon változóhoz egymás után más és más típusú kifejezés is rendelhető, ezért annak típusa a program futása során dinamikusan, menet közben megváltozhat.

$a=5;
$a=$a.". elem"; // 5. elem

Változók összefűzésére több lehetőség is kínálkozik:

$szoveg="van "; // van
$szoveg=$szoveg."hátralévő "; // van hátralévő
$szoveg="$szoveg életed "; // van hátralévő életed
$szoveg.="első napja."; // van hátralévő életed első napja
$szoveg=."Ma "; // Ma van hátralévő életed első napja

2. Vezérlőszerkezetek

2.1. Elágazások, feltételek

2.1.1. IF

A változók taglalásában már használtunk egy IF–et, hogy eldöntsük, az adott változó létezik-e. Az If működése:

if (feltétel) { // ha a feltétel kiértékelése igaz   
  # utasítás(ok)
}
elseif (feltétel 2) { // ha az előző nem igaz, de ez igaz     
  # utasítás(ok)
} else { // ha egyik sem volt igaz
  # utasítás(ok)
}

Az IF vezérlőszerkezet roppant egyszerű, és minden programozási nyelvben megtalálható. 

2.1.2. SWITCH

A SWITCH kifejezés pontos megértéséhez a php.net hivatalos manual-ját vettem alapul!

A switch kifejezés hasonló egy sereg IF kifejezéshez, ahol a kifejezésekben ugyanaz szerepel. Gyakori, hogy ugyanazt a változót (vagy kifejezést) kell összehasonlítani több különböző értékkel, és más-más kódot végrehajtani a változó (kifejezés) értékétől függően. Erre való a switch. 

Megjegyzés: Néhány más nyelvvel ellentétben, a continue utasítás használható switch-ben és ugyanúgy működik mint a break. Ha van egy switch egy cikluson belül, és a ciklusban szeretnél továbblépni, a continue parancsot kell kiadnod. 

Nézzünk egy páldát IF-fel:
if ($i == 0) {
    echo "i most 0";
} elseif ($i == 1) {
    echo "i most 1";
} elseif ($i == 2) {
    echo "i most 2";
}

Ugyanez switch-el:

switch ($i) {
    case 0:
        echo "i most 0";
        break;
    case 1:
        echo "i most 1";
        break;
    case 2:
        echo "i most 2";
        break;
}

A switch-ben nem csak számok, hanem string-ek is ellenőrizhetők:

switch ($string) {
    case "alma":
        echo "most alma";
        break;
    case "körte":
        echo "most körte";
        break;
}

A hibák elkerülése végett fontos megérteni, hogy hogyan kerül végrehajtásra a switch szerkezet. A switch utasításról utasításra hajtódik végre. Nem hajtódik végre semmilyen utasítás, csak akkor, ha egy olyan case kifejezést talál a PHP, amely egyezik a switch kifejezés értékével. Ezután a PHP addig folytatja az utasítások végrehajtását, amíg el nem éri a switch blokk végét, vagy nem találkozik egy break utasítással. 

FONTOS! Ha nincs break egy case-hez tartozó utasítás(sorozat) végén, akkor a PHP végrehajtja a soron következő case-hez tartozó utasításokat is!

A switch kifejezésben a feltétel csak egyszer értékelődik ki és a kapott eredmény lesz összehasonlítva a case kifejezések mindegyikével. Ha elseif kifejezéseket használsz, a kifejezések újra és újra kiértékelődnek. (és újra és újra be kell gépelni. Ez nem csak fárasztó, de hiba forrása is lehet.) Ha a kifejezés bonyolult, vagy egy ciklus belsejében van, a switch a gyorsabb. 

Egy különleges eset a default [alapértelmezett] címke. Ez a címke bármivel egyezik, amivel a korábbi case elemek nem egyeztek. Ennek kell az utolsó elemnek lennie. Például: 

switch ($i) {
    case 0:
        echo "i most 0";
        break;
    case 1:
        echo "i most 1";
        break;
    case 2:
        echo "i most 2";
        break;
    default:
        echo "i se nem 0, se nem 1, se nem 2";
}

A case kifejezés tetszőleges kifejezés, aminek egyszerű a típusa, vagyis egész vagy lebegőpontos szám, vagy string. Tömbök és objektumok itt nem használhatók, csakis egy-egy elemük ill. változójuk egyszerű típusként. (pl.: $tomb['elem'])

2.2. Ciklusok

2.2.1. WHILE

A legegyszerűbb ciklus: WHILE.

Ez egy előltesztelős ciklus. A PHP mindaddig ismétli az utasításokat, amíg a feltétel kiértékelése igaz.

$a=3;
while (strlen($a) < 3) {
    $a="0".$a;
}

Ez egy remek példa, mert egyszerre 2 különböző témára is illik. Elsősorban most a while ciklus miatt nézzük, ám ehhez egy másik tulajdonágát is tudni kell, az pedig az strlen() függvény bemutatása. Az strlen() függvény magadja a változó hosszát, azaz, hogy hány karakterből áll.

$apple="alma";
$length=strlen($apple); // 4

Térjünk vissz a while magyarázatára. A fenti kód értelmében a PHP addig fog futni, amíg $a hossza kisebb, mint 3, tehát a futás befejeztével $a 3 karakter hosszú lesz, jelen esetben "3" helyett "003" lesz az értéke.

2.2.2. DO-WHILE

A while párjának tekinthető a DO-WHILE ciklus, mely ellentétben a while-al, hátultesztelős, azaz előbb lefuttatja az utasításokat, majd utána értékeli ki a feltételt. 

$i = 0;
do {
    echo("");
}
while ($i > 1);

Lévén, hogy a do-while (Pascalban repeat until) hátul tesztelős, ezért egyszer tuti lefut. És mivel a példámban $i > 1 nem teljesül, mert 0 nem nagyobb 1-nél, ezért az első futás után ki is lép a ciklusból. A do-while ciklus a gyakorlatban nem igazán használatos.

2.2.3. FOR

A leggyakrabban használt ciklus, a fix lépésszámú ciklus, azaz a FOR. Ez a ciklus fix darabszámszor fogja lefuttatni a kódot. Tömbökön végigszaladni legtöbbször ezzel a legegyszerűbb.

for ($i=0; $i<count($tomb); $++) {
    echo "A tömb $i. eleme: ".$tomb[$i]."<br/>";
}

Itt megtanultunk még egy fontos függvényt, ez a count(), mellyel egy tömb elemszámát lehet megtudni.

2.2.4. FOREACH

A PHP 4-től a Perlhez és más nyelvekhez hasonlóan létezik az ún. FOREACH szerkezet is. Ez jól használható eszközt ad a tömbökön végzett iterációkhoz. Más típusú vagy inicializálatlan változóra nem lehet használni, azokra hibát jelez. Két szintaxisa létezik, a második egy apró, de annál hasznosabb kiegészítéssel nyújt többet az elsőhöz képest.

// egyszerű
foreach ($tomb as $ertek) {
    # utasítások
}
// bővített
foreach ($tomb as $kulcs => $ertek) {
    # utasítások
}

Az első forma végigmegy a $tomb tömbön. Minden alkalommal az aktuális elem értéke a $ertek változóba kerül, és a belső tömb mutató növelésre kerül. (A következő alkalommal tehát a soron következő elemet fogja venni). 

A második forma ugyanezt végzi el, de az aktuális elem kulcsa a $kulcs változóba kerül. 

$tomb["nev"]="Mágus";
$tomb["e-mail"]="magus@orseolo.hu";

foreach ($tomb as $kulcs => $ertek) {
    echo "$kulcs = $ertek
";
}

A program futását követően a következőt kapjuk:

nev = Mágus e-mail = magus@orseolo.hu

2.2.5. BREAK és CONTINUE

A FOR, FOREACH, WHILE, DO-WHILE és SWITCH szerkezetekből kilépni idő előtt a BREAK utasítással lehet. A break elfogad egy elhagyható szám paramétert, amely megadja, hogy hány egymásba ágyazott struktúrából kell egyszerre 'kiugrani'.

A CONTINUE ciklusok belsejében használható arra, hogy átugorjuk az aktuális iteráció hátralevő részét, és a végrehajtást a feltétel-kiértékeléssel, majd a következő iterációval folytassuk. 

A PHP-ben a switch utasítást a continue definíciója miatt a ciklus utasítások közé sorolják.

A continue elfogad egy elhagyható szám paramétert, amely megadja, hogy hány egymásba ágyazott struktúrának a hátralévő részét kell átugrani.

 


Ha tetszik Önnek ez a tartalom:
ü g y f é l k a p u

- 20536 / 14 -
server uptime
f a c e b o o k
h í r e k
2012.01.01 17:26
Boldog, sikerekben, megbecsülésben és anyagiakban gazdag Új Évet kívánok mindenkinek!
. . . . . . . . . . . . . . . . . .
2011.12.30 09:07
Jelenleg egy olyan projekten dolgozom, amelyre az előfizetők az interneten keresztül betekinthetnek saját otthonukba/üzletükbe/irodájukba kamerákon keresztül.

Íme egy demó kamera képe, mely jelenlegi beállításában februráig hétköznaponta nappal üzemel (kb. 08-16 közt) és az eget kémleli a XIII. kerületben az Árpád hídi metrómegálló közelében.
. . . . . . . . . . . . . . . . . .
2011.11.06 08:08
2011 novemberével elstartolt a WebBit Informatika Kft.
Vállaljuk magánszemélyek, cégek, alapítványok és egyéb szervezetek weblapjának, egyedi szoftvereinek, arculatának, stb. elkészítését, teljeskörű kivitelezését.

Vállaljuk továbbá CMS és CMR rendszerek tervezését és kivitelezését, webshopok, hírlevélküldő rendszerek készítését, valamint tárhely-szolgáltatást és domain ügyinézést.

Bővebb információk a www.webbit.hu oldalon.