Article Categories
- All Categories
-
Data Structure
-
Networking
-
RDBMS
-
Operating System
-
Java
-
MS Excel
-
iOS
-
HTML
-
CSS
-
Android
-
Python
-
C Programming
-
C++
-
C#
-
MongoDB
-
MySQL
-
Javascript
-
PHP
-
Economics & Finance
Selected Reading
How to validate domain name in PHP?
In PHP, you can validate domain names using regular expressions with the preg_match() function. A valid domain name must follow specific rules: contain only alphanumeric characters and hyphens, have proper length limits, and follow DNS naming conventions.
Example
Here's a function to validate domain names ?
<?php
function is_valid_domain_name($domain_name) {
return (preg_match("/^([a-z\d](-*[a-z\d])*)(\.([a-z\d](-*[a-z\d])*))*$/i", $domain_name) //valid characters check
&& preg_match("/^.{1,253}$/", $domain_name) //overall length check
&& preg_match("/^[^.]{1,63}(\.[^.]{1,63})*$/", $domain_name)); //length of every label
}
// Test with valid domain names
$domain1 = 'tutorialspoint.com';
$domain2 = 'sub.example.org';
$domain3 = 'test-site.net';
echo "Domain: $domain1 - " . (is_valid_domain_name($domain1) ? "Valid" : "Invalid") . "<br>";
echo "Domain: $domain2 - " . (is_valid_domain_name($domain2) ? "Valid" : "Invalid") . "<br>";
echo "Domain: $domain3 - " . (is_valid_domain_name($domain3) ? "Valid" : "Invalid") . "<br>";
// Test with invalid domain names
$invalid1 = 'https://tutorialspoint.com'; // Contains protocol
$invalid2 = '-invalid.com'; // Starts with hyphen
$invalid3 = 'toolong' . str_repeat('a', 250) . '.com'; // Too long
echo "Domain: $invalid1 - " . (is_valid_domain_name($invalid1) ? "Valid" : "Invalid") . "<br>";
echo "Domain: $invalid2 - " . (is_valid_domain_name($invalid2) ? "Valid" : "Invalid") . "<br>";
echo "Domain: $invalid3 - " . (is_valid_domain_name($invalid3) ? "Valid" : "Invalid") . "<br>";
?>
The output of the above code is ?
Domain: tutorialspoint.com - Valid Domain: sub.example.org - Valid Domain: test-site.net - Valid Domain: https://tutorialspoint.com - Invalid Domain: -invalid.com - Invalid Domain: toolongaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.com - Invalid
How It Works
The validation function uses three regular expression checks:
- Character validation: Ensures only alphanumeric characters and hyphens are used
- Overall length: Domain must be between 1-253 characters
- Label length: Each part separated by dots must be 1-63 characters
Alternative Method
You can also use PHP's built-in filter_var() function for simpler validation ?
<?php
function validate_domain_simple($domain) {
return filter_var('http://' . $domain, FILTER_VALIDATE_URL) !== false;
}
$test_domains = ['tutorialspoint.com', 'invalid..domain', 'example.org'];
foreach($test_domains as $domain) {
echo "Domain: $domain - " . (validate_domain_simple($domain) ? "Valid" : "Invalid") . "<br>";
}
?>
Domain: tutorialspoint.com - Valid Domain: invalid..domain - Invalid Domain: example.org - Valid
Conclusion
Use regular expressions for strict domain validation or filter_var() for simpler checks. The regex method provides more control over validation rules, while filter_var() offers a quick built-in solution.
Advertisements
