[[: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 "";
}
?>
===== 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');