PHP – Kontrola existence webové stránky a emailu

PHP

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 :)

Komentáře