Tartalomjegyzék
PHP minták
- Szerző: Sallai András
- Copyright © Sallai András, 2011, 2012, 2013, 2015, 2019, 2020
- Licenc: GNU Free Documentation License 1.3
- Web: http://szit.hu
Dátum
Néha szükségünk van az aktuális dátumra, vagy éppen az időpontra. A date() függvény segíthet számunkra. Paraméterként egy karaktersorozatban meg kell adni milyen formában szeretnénk viszontlátni a dátumot vagy éppen az időt.
Ha például szeretnénk az évet, akkor egy „Y”-t írunk. A hónap megjelenítésére, az m kód használható. A napok megjelenítésére „d” kód.
Dátum megjelenítésére példa:
$today = date("Y-m-d"); print $today;
Működés közben:
2024-11-15
További formázási lehetőségeket a következő táblázat alapján valósíthatunk meg:
Használható kódok | |
---|---|
d | A hónap napja (forma 01 to 31) |
D | A nap szöveges megjelenéssel (három betű) |
j | A hónap napja vezető nullák nélkül (1 to 31) |
l | (kisbetűs 'L') - A nap teljes szöveggel |
N | A nap ISO-8601 számformátumban (Hétfő 1 -től Vasárnap 7-ig) |
S | Angol elöljárók a hónap napjai számára (2 karakter st, nd, rd vagy th. Jól működik a j-vel) |
w | A hét napja számmal 0 és 6 között (0 vasárnaptól egészen 6-os szombatig) |
z | Az év adott napja (0-tól - 365-ig) |
W | Az év hete számmal, az ISO-8601 szerint (a hét hétfővel kezdődik) |
F | A hónap teljesen szövegesen (January - December) |
m | A hónap számokkal (01 – 12) |
M | A hónap rövid szöveges formája (három betű) |
n | A hónap számokkal, vezető nullák nélkül (1 – 12) |
t | A napok száma az adott hónapban |
L | Az adott év szökőév? (1 ha szökőév, 0 ha nem) |
o | A ISO-8601 szerinti év számmal |
Y | Az év négy számjeggyel ábrázolva |
y | Az év két számjeggyel ábrázolva |
a | Kisbetűs am vagy pm |
A | Nagybetűs AM vagy PM |
B | Swatch Internet time (000 – 999) |
g | Egy óra 12-órás formában (1 – 12) |
G | Egy óra 24-órás formában (0 to 23) |
h | Egy óra 12-órás formában (01 to 12) |
H | Egy óra 24-órás formában (00 to 23) |
i | Perc, vezető nullákkal (00 to 59) |
s | Másodperc, vezető nullákkal (00 to 59) |
e | Az időzóna azonosítója (Például: UTC, Atlantic/Azores) |
I | (nagybetűs i) - Vajon nyári időszámításban van a dátum? (1 nyári időszámítás esetén, 0 ha nem) |
O | Greenwich-től hány órára vagyunk (GMT) órában (Például: +0100) |
T | Időzóna beállítás a PHP-t futtató gépen. (Például: EST, MDT) |
Z | Időzóna lépték másodpercben. Az UTC nyugatra negatív, keletre pozitív (-43200 – 43200) |
c | Az ISO-8601 szerinti dátum (pl. 2004-02-12T15:19:21+00:00) |
r | The RFC 2822 formatted date (pl. Thu, 21 Dec 2000 16:01:07 +0200) |
U | Az eltelt idő másodpercekben Unix idő óta (January 1 1970 00:00:00 GMT) |
Gyakorlat 001
- Írja le, hogyan kell megjeleníteni az aktuális időt, a következő formában:
- 09:07:03
Weblap fejlécének előállítása
Fájlkezelés
Megnyitás hozzáfűzésre:
$adatfile = fopen("adat.txt", "a") or exit("Nem tudom megnyitni a fájlt!"); fputs($adatfile, "Adat\n\n"); fclose($adatfile);
LDAP
$ldapConn=ldap_connect("localhost"); ldap_set_option($ldapConn, LDAP_OPT_PROTOCOL_VERSION, 3); ldap_set_option($ldapConn, LDAP_OPT_REFERRALS, 0); if ($ldapConn) { //bind ha kell: $ldapBind=ldap_bind($ldapConn,"BindUser","BindPassword"); $ldapBase="ou=People,dc=domain,dc=com"; $filter="cn=$UserName*"; $justthese = array( "givenName", "sn", "mail", "description"); $ldapSearch = ldap_search($ldapConn, $ldapBase, $filter, $justthese); $info = ldap_get_entries($ldapConn, $ldapSearch); print_r($info); }
IP cím lekérdezése
echo "Távoli cím: " . $_SERVER['REMOTE_ADDR']."<br/>"; echo "X Forward: " . $_SERVER['HTTP_X_FORWARDED_FOR']."<br/>"; echo "IP kliens: " . $_SERVER['HTTP_CLIENT_IP']."<br/>";
function getIp() { $ip = $_SERVER['REMOTE_ADDR']; if (!empty($_SERVER['HTTP_CLIENT_IP'])) { $ip = $_SERVER['HTTP_CLIENT_IP']; } elseif (!empty($_SERVER['HTTP_X_FORWARDED_FOR'])) { $ip = $_SERVER['HTTP_X_FORWARDED_FOR']; } return $ip; }
Átirányítás
header('HTTP/1.1 301 Moved Permanently'); header('Location: http://www.masikdomain.valahol/'); exit();
Kérjünk be 0 végjelig minta
Olyan feladatok megoldásához nyújt segítséget, ahol például számokat kell bekérni 0 végjelig. Az index.php a példában minidig önmagát hívja.
- index.php
<?php header("Content-Type: text/html; charset=UTF-8"); $szam = $_GET['szam']; $osszeg = $_GET['osszeg']; $szamlalo = $_GET['szamlalo']; $osszeg = $osszeg + $szam; $szamlalo++; if($szam == "0" ) { $szamlalo = $szamlalo -2; print "Összeg: ".$osszeg."<br />"; print "Számláló: ".$szamlalo."<br />"; print "Átlag: ". $osszeg / $szamlalo ."<br />"; } else { print <<<EOT <form action="index.php"> Szam: <input type="text" name="szam" /><br /> <input type="submit" /> <input type="hidden" name="osszeg" value=$osszeg /> <input type="hidden" name="szamlalo" value=$szamlalo /> </form> EOT; } ?>
A program nem csak a bekérést valósítja meg, de számol, összegez és átlagol.
A kiíratás előtt le kell levonni 2-t. Egyet azért, mivel a $szamlalo már eleve 1-gyel kezd a weblap első megjelenéskor. A másik egyes értéket pedig azért mert a program a 0 érték végjelet is megszámolja, amit nem kell.
0 végjelig számok, majd maximum és minimum számítás
- index.php
<?php header("Content-type:text/html; charset=UTF-8"); if(!isset($_GET['szam'])) { urlap(); } else if($_GET['szam'] == "0") { $min = $_GET['min']; $max = $_GET['max']; echo "Minimum: ". $min . "<br />"; echo "Maximum: ". $max . "<br />"; } else { $szam = $_GET['szam']; $min = $_GET['min']; $max = $_GET['max']; $szamlalo = $_GET['szamlalo']; if($szamlalo > 0) { if($min > $szam) $min = $szam; } else { $min = $szam; } if($max<$szam) $max = $szam; $szamlalo++; urlap(); } function urlap() { global $min, $max, $szam, $szamlalo; echo "<form action=\"index.php\" method=\"get\">\n"; echo "Szám: <input type=\"text\" name=\"szam\"><br />\n"; echo "<input type=\"submit\">\n"; echo "<input type=\"hidden\" name=\"min\" value=$min>\n"; echo "<input type=\"hidden\" name=\"max\" value=\"$max\">\n"; echo "<input type=\"hidden\" name=\"szamlalo\" value=\"$szamlalo\">\n"; echo "</form>"; } ?>
Könyvtár olvasása
Véletlen karaktersorozat generálása
function genRandStr($length = 10) { return substr(str_shuffle(implode(array_merge(range(0,9), range('a','z'), range('A','Z')))), 0, $length); }
Más domainről felhasználható adat
XMLHttpRequest cannot load http://localhost/tasks. No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://localhost:9000' is therefore not allowed access.
header('Access-Control-Allow-Origin: *');
JSON
$jsonData = json_encode($tomb);
Fájl betöltése
<textarea> <?php $fn = "adat.txt"; print htmlspecialchars(implode("",file($fn))); ?> </textarea>
Heredoc és a tömb
Ha heredoc szövegben adunk meg tömbváltozókat, akkor a tömbhivatkozást kapcsos-zárójelbe kell tenni, „{ }”.
$lang = array ( 'username' => "Felhasználónév", 'password' => "Jelszó" ); print <<<EOT {$lang['username']} <input type="text"><br> {$lang['password']} <input type="password"><br> EOT;
Változó hosszúságú argumentumok
A func_get_args() függvény visszaadja tömbként az argumentumokat.
A func_get_arg() függvény egyenként adja vissza az argumentumokat. Paraméterként meg kell adni, mi az indexe az argumentumnak.
function csinald() { $args = func_get_args(); var_dump($args); } csinald('egy', 'kettő', 'három');
function csinald() { $arg0 = func_get_arg(0); echo $arg0; } csinald('egy', 'kettő', 'három');