Funkcje PHP
- Szczegóły
- Kategoria: Ciekawostki
- Opublikowano: środa, 31, grudzień 2014 19:26
- Super User
- Odsłony: 60151
Funkcje PHP
Sprawdzenie ile pozostało dni z czasu zapisanego w formacie uniksowym.
$dzien = time()-86400; $tydzien = time()-604800; $miesiac = time()-2592000; $dwa_miesiac = time()-5184000; $zostalo_dni = ($tydzien - time()) / 86400; echo $zostalo_dni; $zostalo_tygodni = ($miesiac - time()) / 604800; echo $zostalo_tygodni; $zostalo_miesiecy = ($dwa_miesiac - time()) / 2592000; echo $zostalo_miesiecy; ## zamiana czasu uniksowego na mysql ## $phptime=1415732293; echo " ".$mysqltime = date("Y-m-d H:i:s", $phptime)." ";
.
Czyścimy opis ze znaczników html nie wszystkich, sprawdzamy długość teksu i czyścimy przed zapisem do bazy danych mysql
function czysc_opis($post){ ## Sprawdzamy czy teks jest krótszy niż 150 znaków ## if(strlen($post) < 150){ ## pozwalamy na używanie takich znaczników "" ## $post = strip_tags($post, "
"); ## filtrujemy dane przed zapisem do bazy danych mysql ## return mysql_real_escape_string($post); }else{ return "Twój opis jest za długi !"; } }
Czyścimy numer telefonu pozostawiając możliwość użycia przerwy pomiędzy liczbami i znaku myślnika.
function czysctel($tel) { ## czyścimy numer telefonu i dopszczamy używanie takich symboli + – i przerwa pomiędzy ## ## znakami taki format 111 111 111 lub 111-111-111 +48 52 itd. są dozwolone ## return preg_match('/^[0-9\+\-\ ]{8,13}$/', $tel); }Czyścimy numer nip i zmuszamy do prawidłowego podania go.
Poprawny format 000 000 00 00 i 000-000-00-00 lub 107-00-00-067
http://pl.wikipedia.org/wiki/NIP
function czyscnip($nip) { if(!empty($nip)) { $waga = array(6, 5, 7, 2, 3, 4, 5, 6, 7); $nip = preg_replace(array('/\-/','/\ /'), '', $nip); if (strlen((int)$nip) == 10) { $suma = 0; for($i = 0; $i < count($waga); $i++) $suma += $nip[$i] * $waga [$i]; if(($suma % 11) == $nip[9]){ return true; } } } return false; }
Funkcja php odpowiedzialna za czyszczenie (walidacje) kodu pocztowego
function czysckodpoczt($kodpocztowy){ if(preg_match('/^[0-9\-]{5,7}$/', $kodpocztowy)) { return $kodpocztowy; }else{ return "Niepoprawny kod"; } }
Lub bardziej dokładny z zabezpieczeniem przed Cross-site scripting (XSS)
function czysckodpoczt1($kodpocztowy){ if(preg_match('/^[0-9]{2}-[0-9]{3}$/', strip_tags($kodpocztowy))) { return $kodpocztowy; }else{ return "Niepoprawny kod"; } }
Kolejna funkcja, która może nam się przydać podczas codziennej pracy z formularzami php filtrująca email, nie zapominajmy tutaj stosując funkcję php filter_var() o możliwości przeprowadzenia ataku na za pomocą Cross-site scripting (XSS)
function czyscemail($email){ if(!filter_var(strip_tags($email), FILTER_VALIDATE_EMAIL) === false) { return $email; }else{ return "Niepoprawny email"; } }
Oraz: Funkcja która pozwala zapisać sam adres www bez protokołu np. http://
## także zabezpieczona przed Cross-site scripting (XSS) function czyscewww($www){ if($url = parse_url(strip_tags($www))){ if(!$url["scheme"]){ return $url['path']; }else{ return $url['host']; } }else{ return "Niepoprawny www"; } }
albo
$www = 'http://www.oskarś.examplę.pl'; ## FILTER_SANITIZE_STRING Zabezpieczenie przed Cross-site scripting (XSS) drugia flaga walidacja url function czyscewww1($www){ if($www = filter_var($www, FILTER_SANITIZE_STRING, FILTER_VALIDATE_URL)){ return $www; }else{ return "Niepoprawny www"; } }
albo, chyba najciekawsza z tego zestawu, dlatego że obsługuje polskie znaki diakratyczne i nie trzeba się martwić o ataki Cross-site scripting (XSS) choć wystkie gdzieś mają swoje zastosowanie, obsługuje także subdomeny.
$www = 'http://www.oskarś.examplę.pl'; $www0 = 'oskarś.examplę.pl'; $www1 = 'www.example.pl'; $www2 = 'www.oskarś.examplę.pl'; $www3 = 'oskarś.examplę.pl'; $www4 = 'examplę.pl'; $www5 = ' http://www.examplę.pl'; ## dla polskich domen ze znakami diakratycznymi i zabezpieczeniem przed Cross-site scripting (XSS) function czyscewww2($www){ if(preg_match('%^((http(s)?://)|([a-z])){2}+([a-ząęćłńóśźż0-9-].?)+([a-z]){2}?$%i', $www, $math)){ return $math[0]; }else{ return "Niepoprawny www"; } }