3v4l.org

run code in 150+ php & hhvm versions
Bugs & Features
<?php var_dump(filter_var('http://www.google.fr', FILTER_VALIDATE_URL)); var_dump(filter_var('www.google.fr', FILTER_VALIDATE_URL)); var_dump(filter_var('https://www.google.fr', FILTER_VALIDATE_URL)); var_dump(filter_var('google.fr', FILTER_VALIDATE_URL)); $regex = "((https?|ftp)\:\/\/)?"; // SCHEME $regex .= "([a-z0-9+!*(),;?&=\$_.-]+(\:[a-z0-9+!*(),;?&=\$_.-]+)?@)?"; // User and Pass $regex .= "([a-z0-9-.]*)\.([a-z]{2,3})"; // Host or IP $regex .= "(\:[0-9]{2,5})?"; // Port $regex .= "(\/([a-z0-9+\$_-]\.?)+)*\/?"; // Path $regex .= "(\?[a-z+&\$_.-][a-z0-9;:@&%=+\/\$_.-]*)?"; // GET Query $regex .= "(#[a-z_.-][a-z0-9+\$_.-]*)?"; // Anchor var_dump(preg_match("/^$regex$/", 'http://www.google.fr')); var_dump(preg_match("/^$regex$/", 'www.google.fr')); var_dump(preg_match("/^$regex$/", 'https://www.google.fr')); var_dump(preg_match("/^$regex$/", 'google.fr')); var_dump(preg_match("/^$regex$/", 'www.example.com/etcetc')); var_dump(preg_match("/^$regex$/", 'test.fr/test-test.html?test=1e#test')); var_dump(preg_match("/^$regex$/", 'http://www.example.com/etcetc'));
Output for 5.2.1 - 7.1.0
string(20) "http://www.google.fr" bool(false) string(21) "https://www.google.fr" bool(false) int(1) int(1) int(1) int(1) int(1) int(1) int(1)
Output for 5.2.0
string(20) "http://www.google.fr" string(13) "www.google.fr" string(21) "https://www.google.fr" string(9) "google.fr" int(1) int(1) int(1) int(1) int(1) int(1) int(1)
Output for 5.0.0 - 5.1.6
Fatal error: Call to undefined function filter_var() in /in/davQq on line 3
Process exited with code 255.
Output for 4.4.5 - 4.4.9
Fatal error: Call to undefined function: filter_var() in /in/davQq on line 3
Process exited with code 255.
Output for 4.3.2 - 4.4.4
Fatal error: Call to undefined function: filter_var() in /in/davQq on line 3
Process exited with code 255.
Output for 4.3.0 - 4.3.1
Fatal error: Call to undefined function: filter_var() in /in/davQq on line 3