[[:oktatas:programozás:php|< PHP]] ====== 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: $today = date("Y-m-d"); print $today; 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']."
"; echo "X Forward: " . $_SERVER['HTTP_X_FORWARDED_FOR']."
"; echo "IP kliens: " . $_SERVER['HTTP_CLIENT_IP']."
";
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. "; print "Számláló: ".$szamlalo."
"; print "Átlag: ". $osszeg / $szamlalo ."
"; } else { print << Szam:
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 ===== "; echo "Maximum: ". $max . "
"; } 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 "
\n"; echo "Szám:
\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "
"; } ?>
===== 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 ===== ===== 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 <<
{$lang['password']}
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');