POZOR! Článek jsem napsal před více jak rokem, a tudíž už nemusí reflektovat můj nynější názor nebo může být zastaralý.
Jelikož jsem zrovna řešil registraci pro svůj systém Uno2, rozhodl jsem se, že se o svůj kód rovnou podělím. Přestože má každá funkce tak dva tři řádky, myslím si, že i přesto pro někoho můžou být užitečné.
Kontrola webové stránky
Pokud po registrujících se uživatelích požaduje i zadání webové stránky, můžete URL zkontrolovat dvěma způsoby. Ověřit zda je správně napsané (pomocí regulárního výrazu) a jestli vůbec existuje (nemyslete si však, že tím docílíte toho, že vám uživatel pravdivě zadá svojí www adresu).
Pokud vám stačí jen první možnost:
function is_url ($url, $regular = "/^http(s)?:\/\/([a-z0-9_.-]+).([a-z0-9_-]+)\.([a-z]{2,4})($|\/)/i") {
if (preg_match($regular,$url,$details) && url_exists($url))
return $details;
}
Použití funkce je jednoduché:
if (is_url($url))
echo "Adresa je napsaná správně";
Jak si asi bystřejší z vás všimli, můžete do druhého argumentu napsat vlastní regulární výraz:
if (is_url($url,"/^http(s)?:\/\/([a-z0-9_.-]+).([a-z0-9_-]+)\.([a-z]{2,4})($|\/)/i"))
echo "Adresa je napsaná správně";
Regulární výrazy jako takové bych vysvětlil v jiném článku.
Kontrola existence webové stránky
Kdyby jste si přece jenom chtěli ověřit i její existenci zde je funkce:
function url_exists ($url) {
if ($h = @get_headers($url))
if (array_key_exists(0,$h) && preg_match('/200|301|302/',$h[0]))
return 1;
}
Její použití je také velmi jednoduché:
if (url_exists($url))
echo "Adresa existuje";
Kontrola emailu
U emailové adresy bohužel nijak nezkontrolujete zda je opravdu funkční, bude vám muset stačit jestli je její syntaxe správná:
function is_email ($email, $regular = "/^([a-z0-9_.-]+)@([a-z0-9_.-]+)\.([a-z]{2,4})$/i") {
if (preg_match($regular,$email,$details))
return $details;
}
Použití je stejné jako u URL, můžete také použít vlastní regulární výraz:
if (is_email($email))
echo "Email je napsaný správně";
Znáte někoho, komu by článek mohl pomoct? Zasdílejte mu ho :)