Scripts

Url validatie met RegEx

Gebruik deze functie voor de validatie van een URL die via een form field naar de server is getuurd. Als er een match is de boolean waar en anders niet. De demolink verweist naar een pagina waar de validatie binnen een "validatie class" gebeurt. Het is mogelijk voor adressen met of zonder bestandsnaam te controleren, zoals: http://www.finalwebsites.com/snippets.php http://domain.info http://subdeomain.domain.nl http://www.phphulp.nl/php/scripts/5/249/ http://www.finalwebsites.com/contact.php?lang=nl ... niet mogelijk zijn: https://server.domein.nl ftp://ftp.myserver.com ... Heb je een goed idee voor een uitbreiding dan laat van je horen!

url-validatie-met-regex
<?php
function check_url($url_val) {
	$url_pattern = "http\:\/\/[[:alnum:]\-\.]+(\.[[:alpha:]]{2,4})+";
	$url_pattern .= "(\/[\w\-]+)*"; // folders like /val_1/45/
	$url_pattern .= "((\/[\w\-\.]+\.[[:alnum:]]{2,4})?"; // filename like index.html
	$url_pattern .= "|"; // end with filename or ?
	$url_pattern .= "\/?)"; // trailing slash or not
	$error_count = 0;
	if (strpos($url_val, "?")) {
		$url_parts = explode("?", $url_val);
		if (!preg_match("/^".$url_pattern."$/", $url_parts[0])) {
			$error_count++;
		}
		if (!preg_match("/^(&?[\w\-]+=\w*)+$/", $url_parts[1])) {
			$error_count++;
		}
	} else {
		if (!preg_match("/^".$url_pattern."$/", $url_val)) {
			$error_count++;
		}
	}
	if ($error_count > 0) {
		return false;
	} else {
		return true;
	}
}
// voorbeeld
if (check_url("http://www.phphulp.nl/php/scripts/5/249/")) {
    echo "Adres is OK.";
} else {
    echo "Adres is niet geldig";
}
?>

Reacties

0
Nog geen reacties.