4 tei notatki php
Notatki z tematów : funkcje, tablice, data w PHP
<?php
function powitanie()
{
echo "witam serdecznie<br>";
}
powitanie();
function powitanie2()
{
return "witaj Drogi użytkowniku <br>";
}
$pow = powitanie2();
echo $pow;
function oblicz()
{
$zm1 = 5;
$zm1+=4;
$zm1++;
return $zm1;
}
if (oblicz() > 9)
echo "f-kcja zwraca wartosc wieksza niz 9 <br>";
else
echo "wartosc zwracana jest mnijesza ";
function przywitaj($zm_imie)
{
echo 'Witaj '. $zm_imie. ' !';
}
$imie = "Stefan";
przywitaj($imie);
echo "<br>";
przywitaj("Mikołaj");
echo "<br>";
echo "<br>";
function kwadrat($liczba)
{
return $liczba*$liczba;
}
$num = 8;
$wynik = kwadrat($num);
echo $wynik;
echo "<br>";
function silnia($liczba)
{
$wynik = 1 ;
while($liczba > 1)
{
$wynik *= $liczba;
$liczba--;
}
return $wynik;
}
echo silnia(5);
// funkcja rekurencyjna czyli kożysta sama z siebie
function silniarek($liczba)
{
if ($liczba < 2 )
return 1;
else
return $liczba*silniarek($liczba-1);
}
echo "<br>";
echo silniarek(5);
echo "<hr>";
$tab[0] = 1;
$tab[1] = 9;
$tab[2] = 6;
$tab[3] = 0;
for ($i = 0; $i <4; $i++)
echo $tab[$i];
$zm_x = 25;
$i = 0;
$j = 0;
while ($i <= $zm_x)
{
if ($i % 4 == 0)
{
$tab[$j] = $i;
$j ++;
}
$i++;
}
for($i = 0; $i<$j; $i++)
echo $tab[$i]. "<br>";
$tab_u[0] = "Edek";
$tab_u[1] = "Kredek";
$tab_u[2] = "23-10-1997";
$tab_k[0] = $tab_u;
$tab_u[0] = "Stefania";
$tab_u[1] = "Krzywonos";
$tab_u[2] = "2-07-1997";
$tab_k[1] = $tab_u;
$tab_u[0] = "Marek";
$tab_u[1] = "Nowak";
$tab_u[2] = "21-01-1995";
$tab_k[2] = $tab_u;
echo $tab_k[2][1];
// tablice asocjacyjne
$klasy = array();
$uczen['imie'] = 'Stefan';
$uczen['nazwisko'] = 'Burczymucha';
$uczen['data'] = '12-12-2001';
$klasy[] = $uczen;
$uczen['imie'] = 'Wiktoria';
$uczen['nazwisko'] = 'Burczymucha';
$uczen['data'] = '14-10-2001';
$klasy[] = $uczen;
var_dump($klasy);
//forech pętla do przeszukiwania tablic
echo "<br>";
$numbers = array();
for($i=0;$i<10;$i++)
{
$numbers[] = $i;
}
foreach($numbers as $number)
{
echo $number;
}
echo "<br>";
$uczen = array();
$uczen['imie'] = 'Stefan';
$uczen['nazwisko'] = 'Burczymucha';
$uczen['data'] = '12-12-2001';
foreach($uczen as $key => $dane)
{
echo "wartość dla indeksu: $key to: $dane <br>";
}
?>
// data
<?php
$date = date("Y-m-d");
$czas = date("H:i");
echo "stroną wyśiwetlono dnia $date o godzinie $czas";
echo "<br>";
$data = date("Y-m-d, H:i", mktime(0,0,0,10,15,1985));
echo $data;
echo "<br>";
echo time();
?>program z podsumowania:
* urodziny.html*
<!DOCTYPE html>
<html lang="pl">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>wpisz date urodzenia</title>
</head>
<body>
<form action="oblicz.php" method="get">
<label> Wpisz dzień: <input type="text" name="dzien"></label><br/>
<label> Wpisz miesiąc: <input type="text" name="miesiac"></label><br/>
<label> Wpisz rok: <input type="text" name="rok"></label><br/>
<input type="submit" value="OK">
</form>
</body>
</html>
* oblicz.php*
<?php
function wyp_dzien($data)
{
echo "urodziłeś się w: ";
echo date("l ", mktime(0,0,0,$data['miesiac'], $data['dzien'], $data['rok']));
}
function oblicz_dni($data)
{
$czas = (time()- mktime(0,0,0,$data['miesiac'], $data['dzien'], $data['rok']))/60/60/24;
return $czas;
}
$data['dzien'] = $_GET['dzien'];
$data['miesiac'] = $_GET['miesiac'];
$data['rok'] = $_GET['rok'];
wyp_dzien($data);
echo "<br>tyle dni mineło od dnia Twoich narodzin: ";
echo rand(oblicz_dni($data),1);
?>
Wyrażenia warunkowe, walidacje itp
<?php
echo rand(5,30); // wyświetlamy losowe liczby z przedziału 5-30
echo "<br>";
// - łączenie stringa operatorem kropki + konkatenacja
$wys = "Bardzo";
$wys .= " lubię";
$wys .= " PHP.";
echo $wys;
echo "<br>";
// implode do łączenia stringów
$data[0] = "16";
$data[1] = "05";
$data[2] = "1996";
$wyswietl = implode("-", $data);
echo $wyswietl;
echo "<br>";
// sprawdzamy czy występują jakiś tekst wewnatz stringa
$tekst = "churra mamy 4 dni wolnego ! ";
$sprawdz = strpos($tekst, "cholera");
if ($sprawdz == false)
echo "można wyświetlać: $tekst";
else
echo "tekst zawiera słowa zakazane";
echo "<br>";
// explode do rozdzielania stringa do inne zmienne.
$dane = "Konstanty,Wieszcz,Katowice";
$dane_osobowe = explode(",", $dane);
echo $dane_osobowe[0]."<br>";
echo $dane_osobowe[1]."<br>";
echo $dane_osobowe[2]."<br>";
// zamiana wszystkich liter na duże
echo strtoupper("Ala ma Kota");
echo "<br>";
// zamiana na małe litery
echo strtolower("ZAMIEniaMY TEKST na mAłE LITERKI");
echo "<br>";
// zamiana tylko pierwszej litery na dużą
echo ucwords("mateusz siemiez");
echo "<br>";
// funkcja do sprawdzenia liczy znaków w ciągu
echo strlen("Napis jest bardzo długi ciekawe ile to będzie znaków ?");
echo "<br>";
// usuwanie białych znaków na początki i końcu
echo trim(" usuń spacje z tekstu ");
// wyrażenia regularne
//konstrukcja wyrazenia
$wyrazenie = '/^[a-z]+$/';
$tekst = "bocian leci ";
echo "<br>";
if (preg_match($wyrazenie, $tekst))
echo ("tekst zawiera tylko małe litery bez polskich znaków.");
else
echo ("tekst zawiera dodatkowe znaki ");
// /^[a-eA-E0-8]$/
/* ZNaki specjalne
. Zastępuje dowolny znak
\s Spacja
\n Znak nowej linii
\d Cyfra
^ Początek linii lub zaprzeczenie
$ Koniec linii
| Alternatywa
{a,b} Ilość wystąpień danego wzorca – co najmniej a i co najwyżej b razy
{a,} Jak wyżej, bez limitu górnego
{,b} Jak wyżej, bez limitu dolnego
{a} Dokładnie a wystąpień
? Zero lub jedno wystąpienie; tak samo jak {0,1}
+ Jedno lub więcej wystąpień; tak samo jak {1,}
* Dowolna ilość wystąpień (również zero); podobnie jak {0,}
[] Zakres
/^[\.]$/ - znak \ jeżli chcemy potraktowac np kropke jako kropke
*/
// walidacja imienia i nazwiska
echo "<br>";
$imie = "Mateusz";
$nazwisko = "Siemież";
$sprawdz = '/(*UTF8)^[A-ZŁŚ]{1}+[a-ząęółśżźćń]+$/';
if (preg_match($sprawdz, $imie))
{
if (preg_match($sprawdz, $nazwisko))
echo "podano poprawne dane. ";
else
echo "błędne nazwisko.";
}
else
echo "Błędne imie";
// walidacja mejla
echo "<br>";
$email = "ignacy@mail.com";
$sprawdz = '/^[a-zA-Z0-9.\-_]+@[a-zA-z0-9\-.]+\.[a-zA-Z]{2,4}$/';
if (preg_match($sprawdz, $email))
echo "podano prawidłowy adres e-mail";
else
echo "błędny e-mail";
?>
walidacja formularzy !
<!DOCTYPE html>
<html lang="pl">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Kontakt</title>
</head>
<body>
<form action="sprawdz.php" method="post">
<label>Imie: </label><input type="text" name="imie"><br>
<label>Telefon: </label><input type="number" name="telefon"><br>
<label>E-mail: </label><input type="email" name="email"><br>
<label>Treść wiadomości : </label><textarea name="tresc">TUTAJ WPISZ SWOJĄ WIADOMOŚĆ</textarea><br>
<input type="submit" value="Wyślij">
</form>
</body>
</html><?php
function sprawdz_email($email)
{
$spr = '/^[a-zA-Z0-9._\-]+@[a-zA-Z0-9.\-]+\.[a-zA-Z]{2,}$/';
return preg_match($spr, $email) === 1;
}
function sprawdz_imie($imie)
{
$sprawdz = '/^[a-zA-ZŁŚĆŻŹĄĘÓŃąęółźżćńś]+$/u';
if (preg_match($sprawdz, $imie)) {
$imie = ucfirst(strtolower($imie));
return $imie;
} else {
return false;
}
}
function sprawdz_tel($telefon)
{
$sprawdz = '/^[0-9]{9}$/'; // 9 cyfr, np. 501234567
return preg_match($sprawdz, $telefon) === 1;
}
function sprawdz_tresc($tresc)
{
$tresc = trim($tresc);
if (strlen($tresc) < 30)
return false;
else
return htmlspecialchars($tresc); // zabezpieczenie XSS
}
// Odbiór danych
$email = $_POST['email'] ?? '';
$imie = $_POST['imie'] ?? '';
$telefon = $_POST['telefon'] ?? '';
$tresc = $_POST['tresc'] ?? '';
$blad = false;
// Walidacja
if (!sprawdz_email($email)) {
echo "Adres e-mail niepoprawny<br>";
$blad = true;
}
$imie = sprawdz_imie($imie);
if (!$imie) {
echo "Imię wpisano niepoprawnie<br>";
$blad = true;
}
if (!sprawdz_tel($telefon)) {
echo "Błędny format telefonu<br>";
$blad = true;
}
$tresc = sprawdz_tresc($tresc);
if (!$tresc) {
echo "Niepoprawna treść wiadomości (min. 30 znaków)<br>";
$blad = true;
}
if ($blad) {
echo "<br>Wystąpił jeden lub więcej błędów podczas przetwarzania danych.";
} else {
echo "<h3>Dane poprawne:</h3>";
echo "Imię klienta: $imie<br>";
echo "Adres e-mail: $email<br>";
echo "Numer telefonu: $telefon<br>";
echo "Treść wiadomości: $tresc<br>";
}
?>